代码实现
1.提取工具类
建立一个utils包
建立一个配置文件,增加耦合度
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3307/school?useUnicode=true&characterEncoding=utf8&useSSL=true username=root password=201314
建立工具类加载配置文件
package com.util; import com.sun.xml.internal.fastinfoset.algorithm.IEEE754FloatingPointEncodingAlgorithm; import jdk.nashorn.internal.ir.CatchNode; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class jdbcutils { private static String driver=null; private static String url=null; private static String username=null; private static String password=null; static{ try{ //读取配置文件中的输入流 InputStream inputStream= jdbcutils.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties=new Properties();//拿到输入流 properties.load(inputStream);//读出输入流 driver=properties.getProperty(driver);//获取配置文件中的对象 url=properties.getProperty(url);//获取配置文件中的对象 username=properties.getProperty(username);//获取配置文件中的对象 password=properties.getProperty(password;//获取配置文件中的对象 //驱动只要加载一次 Class.forName(driver); }catch (Exception e){ e.printStackTrace(); } } //获取连接 public static Connection getConnection()throws SQLException { return DriverManager.getConnection(url,username,password); } //释放资源 public static void release(Connection com, Statement st, ResultSet rs){ if(rs!=null){ try { rs.close(); }catch (SQLException e){ e.printStackTrace(); } } if(st!=null){ try { st.close(); }catch (SQLException e){ e.printStackTrace(); } if(com!=null){ try { com.close(); }catch (SQLException e){ e.printStackTrace(); } } } } } }
这些都是固定的唯一要改的就是sql语句
编写语句
插入语句
package com; import com.sun.xml.internal.bind.v2.model.core.ID; import com.util.jdbcutils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { Connection com=null; Statement st=null; ResultSet rs=null; try { com= jdbcutils.getConnection();//获取数据库连接 st= com.createStatement();//获取SQL执行对象 String sql="insert into user(`id`,`name`,`password`,`email`,`birthday`)" + "values( `4`,`kai`,`123456`,`2537159362@qq.com`,`1998`)"; int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数 if(i>0){ System.out.println("插入成功!"); } }catch (SQLException e){ e.printStackTrace(); }finally { jdbcutils.release(com,st,rs);//释放资源 } } }
删除语句
package com; import com.sun.xml.internal.bind.v2.model.core.ID; import com.util.jdbcutils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { Connection com=null; Statement st=null; ResultSet rs=null; try { com= jdbcutils.getConnection();//获取数据库连接 st= com.createStatement();//获取SQL执行对象 String sql="delete from user ehere id=1"; int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数 if(i>0){ System.out.println("删除成功!"); } }catch (SQLException e){ e.printStackTrace(); }finally { jdbcutils.release(com,st,rs);//释放资源 } } }
和插入相比就变了一个sql,增删改都用的.executeUpdate,都只要修改sql语句就行
修改语句
package com; import com.sun.xml.internal.bind.v2.model.core.ID; import com.util.jdbcutils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { Connection com=null; Statement st=null; ResultSet rs=null; try { com= jdbcutils.getConnection();//获取数据库连接 st= com.createStatement();//获取SQL执行对象 String sql="update user set name=kai ehere id=1"; int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数 if(i>0){ System.out.println("修改成功!"); } }catch (SQLException e){ e.printStackTrace(); }finally { jdbcutils.release(com,st,rs);//释放资源 } } }
查询
package com; import com.sun.xml.internal.bind.v2.model.core.ID; import com.util.jdbcutils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { Connection com=null; Statement st=null; ResultSet rs=null; try { com= jdbcutils.getConnection();//获取数据库连接 st= com.createStatement();//获取SQL执行对象 String sql="select * from user ehere id=1"; rs==st.executeQuery(sql);//查询完毕,会返回结构集 while(rs.next()){ System.out.print(rs.getString(columnlabel:"name")//把结构集打印出来 } }catch (SQLException e){ e.printStackTrace(); }finally { jdbcutils.release(com,st,rs);//释放资源 } } }