数据库:
create table t1(id int primary key not null auto_increment,name varchar(32),password varchar(32)); insert into t1(name,password) values('admin','123'); insert into t1(name,password) values('zhangsan','123'); insert into t1(name,password) values('lisi','123');
Java代码:
mySqlConnection.java代码:
package com.dbdao.mysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; public class mySqlConnection { //创建数据库驱动名称 private static String Driver_class="com.mysql.jdbc.Driver"; //数据库链接地址 private String url="jdbc:mysql://localhost:3306/test"; //数据库用户名 private String user="root"; //数据库密码 private String password="11"; //数据库链接 private Connection con=null; //准备声明sql语句 private PreparedStatement pstmt=null; //结果集 private ResultSet rs=null; //影响行数 private int i; /* * 创建驱动 * */ static{ try { Class.forName(Driver_class); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 加载驱动 * */ @Test public void getConnect() { // TODO Auto-generated method stub try { con=DriverManager.getConnection(url, user, password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //判断数据库是否加载成功 if(con!=null){ System.out.println("数据库加载成功!"); }else{ System.out.println("数据库加载失败!"); } } /* * 执行sql语句 * */ public void doSql(String sql,Object[] object) { // TODO Auto-generated method stub //判断sql语句是否存在 if(sql!=null){ //加载驱动 getConnect(); //判断object数组是否存在 if(object==null){ //如果不存在,创建一个,防止出现空指针异常 object=new Object[0]; } try { //声明一条准备的sql语句 pstmt=con.prepareStatement(sql); //为Object对象一一赋值 for(int i=0;i<object.length;i++){ pstmt.setObject(i+1, object[i]); } //执行声明的sql语句 pstmt.execute(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.out.println("sql语句并不存在!"); } } /* * 获取结果集 * */ public ResultSet getRS(){ try { //获取结果集方法 rs=pstmt.getResultSet(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //返回结果集 return rs; } /* * 获取影响行数 * */ public int getUpdateCount() { // TODO Auto-generated method stub try { //获取影响行数方法 i=pstmt.getUpdateCount(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //返回影响行数 return i; } /* * 关闭方法 * */ public void getClose() { // TODO Auto-generated method stub //关闭结果集 try { //结果集关闭方法 rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //关闭声明的sql语句 try { //关闭声明的sql语句方法 pstmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //卸载驱动 try { //驱动卸载方法 con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
loginService.java代码:
package com.service; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; import com.dbdao.mysql.mySqlConnection; public class loginService { //导入mySqlConnection类 mySqlConnection mysqlCon=new mySqlConnection(); //准备sql语句 private String sql; //影响行数(数据变更后,影响行数都是大于0,等于0时没变更,所以说如果变更失败,那么影响行数必定为负) private int i=-1; //结果集 private ResultSet rs; /* * 插入数据 * */ @Test public void insert() { // TODO Auto-generated method stub //创建sql语句 sql="insert into t1(name,password) values(?,?)"; //创建object数组 Object[] object=new Object[]{"admin","123456"}; //执行sql语句 mysqlCon.doSql(sql, object); //获取影响行数 i=mysqlCon.getUpdateCount(); //判断是否插入成功 if(i!=-1){ System.out.println("数据插入成功!"); }else{ System.out.println("数据插入失败!"); } //关闭链接 mysqlCon.getClose(); } /* * 删除数据 * */ @Test public void delete() { // TODO Auto-generated method stub //创建sql语句 sql="delete from t1 where id=?"; //创建object数组 Object[] object=new Object[]{3}; //执行sql语句 mysqlCon.doSql(sql, object); //获取影响行数 i=mysqlCon.getUpdateCount(); //判断是否删除成功 if(i!=-1){ System.out.println("数据删除成功!"); }else{ System.out.println("数据删除失败!"); } //关闭链接 mysqlCon.getClose(); } /* * 更新数据 * */ @Test public void update() { // TODO Auto-generated method stub //创建sql语句 sql="update t1 set password=? where name=?"; //创建Object数组 Object[] object=new Object[]{"11","admin"}; //执行sql语句 mysqlCon.doSql(sql, object); //获取影响行数 i=mysqlCon.getUpdateCount(); //判断数据是否更新成功 if(i!=-1){ System.out.println("数据更新成功!"); }else{ System.out.println("数据更新失败!"); } //关闭链接 mysqlCon.getClose(); } /* * 遍历数据 * */ @Test public void select() { // TODO Auto-generated method stub //创建sql语句 sql="select * from t1"; //执行sql语句 mysqlCon.doSql(sql, null); //获取结果集 rs=mysqlCon.getRS(); //判断结果集是否为空 if(rs!=null){ try { //将光标移动到结果集末端,注意此处不能使用rs.afterLast();否则为空值。 rs.last(); //获取结果集行数 i=rs.getRow(); //判断结果集是否存在 if(i>0){ //将光标移动到结果集前端 rs.beforeFirst(); //循环遍历所有行数 while(rs.next()){ //遍历每行元素的内容 String name=rs.getString("name"); String password=rs.getString("password"); //在控制台打印出结果 System.out.println("name:"+name+" password:"+password); } }else{ System.out.println("结果集为空!"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.out.println("结果集不存在!"); } //关闭链接 mysqlCon.getClose(); } }
时间: 2024-10-09 18:32:03