前言:
现在兄弟们对“mysqljdbc驱动怎么用”大约比较关怀,各位老铁们都需要知道一些“mysqljdbc驱动怎么用”的相关资讯。那么小编也在网络上搜集了一些关于“mysqljdbc驱动怎么用””的相关文章,希望朋友们能喜欢,大家一起来学习一下吧!会用简单的JDBC进行查询之后我们就要去封装代码去进行更高级的操作
1.封装select查询语句2.JDBC工具类
1.封装select查询语句 我们在这里新建了一个数据库,下面我们将查询students里的所有数据,封装成对象,然后装载集合,返回。
定义students类定义方法public List<students> findAll(){ }实现方法select * from students
定义students类 我们新建一个包com.byzhang.domain,并在里边新建一个类students.java作为bean对象
该bean用来封装students的数据 students.java内容如下所示
package com.byzhang.domain;public class students { private int id; private String name; private double score; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } @Override public String toString() { return "students{" + "id=" + id + ", name='" + name + '\'' + ", score=" + score + '}'; }}
定义方法public List<student> findAll(){ } 我们在JDBC中新建一个JdbcDemo4,并定义一个findAll()方法 具体代码如下:main方法是测试作用
package com.byzhang.jdbc;import com.byzhang.domain.students;import java.sql.*;import java.util.ArrayList;import java.util.List;public class JdbcDemo4 { //查询所有students对象 public static void main(String[] args) { List<students> list = new JdbcDemo4().findAll(); System.out.println(list); } public List<students> findAll(){ Connection conn = null; Statement stmt = null; ResultSet res = null; students stu = null; List <students> list = new ArrayList<students>(); try{ //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取Connection对象 conn = DriverManager.getConnection("jdbc:mysql:///test?useSSL=false","root","123456"); //3.定义sql语句 String sql = "select * from students"; //4.获取执行对象 stmt = conn.createStatement(); //5.执行sql res = stmt.executeQuery(sql); //6.处理结果 while(res.next()){ //获取数值 int id = res.getInt(1); String name = res.getString(2); double score = res.getDouble(3);// System.out.println(id+"->"+name+"->"+score); stu = new students(); //封装对象 stu.setId(id); stu.setName(name); stu.setScore(score); //装载集合 list.add(stu); } }catch (ClassNotFoundException | SQLException e){ e.printStackTrace(); }finally { if(res != null){ try{ res.close(); }catch (SQLException e){ e.printStackTrace(); } } if(stmt != null){ try{ stmt.close(); }catch (SQLException e){ e.printStackTrace(); } } if(conn != null){ try{ conn.close(); }catch (SQLException e){ e.printStackTrace(); } } } return list; }}
2.工具类 我们在写代码的时候发现,我们代码的重复度相当的高,很多很多重复写的代码,于是我们可以抽取一个DJBCutils的工具类来简化书写 我们新建一个utils包还有JdbcUtils类
并在src目录下面新建一个jdbc.properties 目的是把url username password这些参数写到配置文件里边,方便改写
JdbcUtils.java内容如下,里边内容较多,写了注释
package com.byzhang.utils;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.sql.*;import java.util.Properties;public class JdbcUtils { private static String url; private static String name; private static String password; private static String driver; /* * 文件的读取只需要读取一次就可以一直拿来用,就使用静态代码块 * */ static{ //读取资源文件,获取值 try { //1.创建properties集合类 Properties pro = new Properties(); //2.加载文件 //获取src目录下的文件的方法ClassLoader类加载器 ClassLoader classloader = JdbcUtils.class.getClassLoader(); URL resource = classloader.getResource("jdbc.properties"); String path = resource.getPath(); pro.load(new FileReader(path)); //3.加载数值,赋值 url = pro.getProperty("url"); name = pro.getProperty("name"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); //4.注册驱动 Class.forName(driver); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } //加载数据,赋值 } //获取链接 //返回链接 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,name,password); } public static void close(Statement stmt,Connection conn) { if(stmt != null) { try{ stmt.close(); }catch (SQLException e){ e.printStackTrace(); } } if(conn != null) { try { stmt.close(); }catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet res, Statement stmt, Connection conn) { if(res != null) { try{ res.close(); }catch (SQLException e) { e.printStackTrace(); } } if(stmt != null) { try{ stmt.close(); }catch (SQLException e){ e.printStackTrace(); } } if(conn != null) { try { stmt.close(); }catch (SQLException e) { e.printStackTrace(); } } }}
测试Java类如下,
package com.byzhang.jdbc;import com.byzhang.domain.students;import com.byzhang.utils.JdbcUtils;import com.sun.jndi.toolkit.ctx.StringHeadTail;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class JdbcDemo5 { public static void main(String[] args) { List<students> list = new JdbcDemo5().findAll(); System.out.println(list); } public static List<students> findAll(){ Connection conn = null; Statement stmt = null; ResultSet res = null; List<students> list = new ArrayList<students>(); students stu = new students(); try{ //注册驱动获取链接 conn = JdbcUtils.getConnection(); //获取执行对象 stmt = conn.createStatement(); //定义sql String sql = "select * from students"; //执行sql res = stmt.executeQuery(sql); //处理结果 while(res.next()){ int id = res.getInt(1); String name = res.getString(2); double score = res.getDouble(3); stu = new students(); stu.setId(id); stu.setScore(score); stu.setName(name); list.add(stu); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtils.close(res,stmt,conn); } return list; }}
通过对比可以发现,代码不再像以前那么臃肿了
标签: #mysqljdbc驱动怎么用