读取数据库,首先要将数据库的驱动包导入:如果是mysql数据库,需要导入mysql-connector-java-5.1.27.jar,如果是oracle就需要导入oracle.jar包;
创新互联是一家成都网站制作、成都网站建设,提供网页设计,网站设计,网站制作,建网站,定制网站,网站开发公司,2013年开创至今是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
然后就是建立数据库连接,使用Connection 新建连接,然后执行你的sql语句查询出需要的数据,下面是两个方法: public PageModel findAllUser(int pageNo,int pageSize){String sql = "select * from user where user_name 'root' order by user_name" +"limit" + (pageNo - 1) * pageSize + "," + pageSize;PageModel pageModel =null;Connection conn =null;Statement stmt =null;ResultSet rs = null;try{conn = DB.getConn();stmt = conn.createStatement();rs = stmt.executeQuery(sql);List user_List = new ArrayList();while(rs.next()){User user = new User();user.setUser_name(rs.getString("user_name"));user.setUser_password(rs.getString("user_password"));user.setUser_tel(rs.getString("user_tel"));user.setUser_email(rs.getString("user_email"));user.setUser_createDate(rs.getTimestamp("user_createdate"));user_List.add(user);}//取得所有记录int totalRecords = getTotalRecords(conn);pageModel = new PageModel();pageModel.setPageSize(pageSize);pageModel.setList(user_List);pageModel.setTotalRecord(totalRecords);}catch(SQLException e){e.printStackTrace();}finally{DB.close(rs);DB.close(stmt);DB.close(conn);}return pageModel;} /** * 取得所有记录 * @param conn * @return 所有记录totalRecords */public int getTotalRecords(Connection conn){String sql = "select count(*) from user where user_name 'root' ";int totalRecords = 0;Statement stmt = null;ResultSet rs = null;try{conn = DB.getConn();stmt = conn.createStatement();rs = stmt.executeQuery(sql);if(rs.next()){totalRecords = rs.getInt(1);}}catch(SQLException e){e.printStackTrace();}finally{DB.close(rs);DB.close(stmt);DB.close(conn);}return totalRecords;}
第一、如果是随机去除,可以:
1、取出表总条数n
2、在应用程序中生成n个随机数(区间在0到n-1)
3、去数据库中把这些记录取出来
第二、用优化mysql查询语句的方法
网上基本上都是查询max(id) * rand()来随机获取数据。
SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2
WHERE t1.id = t2.id
ORDER BY t1.id ASC LIMIT 5;
但是这样获得的是5条连续的记录,解决办法只能是每次查询一条,查询5次。
只有一个参数的话,if(rs.next())先判断一下,然后就看你存放的是什么类型的数据了,那个src是String类型的还是URL类型的?rs.getString(1)或者rs.getURL(1)来得到该数据的引用。在ResultSet中取数据之前都要使用rs.next()方法,一个数据的话就是if(rs.next());多个数据的话就是while(rs.next())。每次读出数据后结果集的游标自动下移。鉴于你所说只有一个参数,那么列的索引就应该是一。
SELECT * FROM 表 LIMIT 0, 10
LIMIT 接受一个或两个数字参数
参数必须是一个整数常量
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量
第二个参数指定返回记录行的最大数目
初始记录行的偏移量是 0(而不是1
扩展资料:
mysql中的一些命令
1、显示数据库列表
show databases
刚开始时才两个数据库:mysql 和 test。mysql 库很重要它里面有 MySQL 的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作
2、显示库中的数据表
use mysql; //打开库
show tables
3、显示数据表的结构
describe 表名
4、建库
create database 库名
参考资料来源:百度百科-mySQL (关系型数据库管理系统)
怎么获取到mysql表格里面的数据
可以通过查询系统表来获取。
1、打开Navicat for Mysql,登录到指定数据库下。
2、新建查询。
3、输入以下语句:
1
select column_name from information_schema.COLUMNS where table_name='表名'