数据库:
Java代码: mySqlConnection.java代码:
- 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');
- 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();
- }
- }
- }
- }
- }
- 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();
- }
- }
来源: http://www.phpxs.com/code/1001856/