JAVA对Mysql进行连接、插入、修改、删除操作

Java 同时被 2 个专栏收录
81 篇文章 0 订阅
37 篇文章 0 订阅

JAVA对Mysql进行连接、插入、修改、删除操作。

 

数据库表单的创建

 

 

mysql> create database shuishengmu;

Query OK, 1 row affected (0.00 sec)

 

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| shuishengmu        |

| test               |

+--------------------+

4 rows in set (0.00 sec)

 

mysql> use shuishengmu;

Database changed

 

mysql> create table user(

    -> userid int(8) unsigned not null auto_increment,

    -> username varchar(20) not null default'',

    -> password varchar(40) not null default'',

    -> email varchar(40) not null default'',

    -> primary key(userid)

    -> )

    -> type=myisam;

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

 

******************************************************************************

下面的类是连接、插入、修改、删除操作

package shuishengmu;

 

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

 

 

public class ConnectDatabase {

 

    String drivename="com.mysql.jdbc.Driver";

    String url="jdbc:mysql://localhost/shuishengmu";

    String user="root";

    String password="111111";

    String insql;

    String upsql;

    String delsql;

    String sql="select * from user";

    String name;

    Connection conn;

    ResultSet rs=null;

 

    public Connection ConnectMysql(){

                try{

            Class.forName(drivename);

            conn = (Connection) DriverManager.getConnection(url, user, password);

            if (!conn.isClosed()) {

                System.out.println("Succeeded connecting to the Database!");

            } else {

                System.out.println("Falled connecting to the Database!");

            }

        }catch(Exception ex){

            ex.printStackTrace();

        }

         return conn;

    }

 

         public void CutConnection(Connection conn) throws SQLException{

             try{

                if(rs!=null);

                if(conn!=null);

             }catch(Exception e){

             e.printStackTrace();

             }finally{

            rs.close();

            conn.close();

             }

    }

 

 

         class user{//内部类,其字段对应用来存放、提取数据库中的数据

             int userid;

             String username="";

             String password="";

             String email="";

 

             //通过set方法,往类的实例里“存放”数据

             //通过get方法,从类的实例里“获得”数据,然后再通过插入数据库

             public void setId(int userid){

                 this.userid=userid;

             }

             public void setName(String username){

                 this.username=username;

             }

             public void setPassword(String password){

                 this.password=password;

             }

             public void setEmail(String email){

                 this.email=email;

             }

             public Integer getId(){

                 return userid;

             }

             public String getName(){

                 return username;

             }

             public String getPassword(){

                 return password;

             }

             public String getEmail(){

                 return email;

             }

 

         }

         //插入、删除、更新的方法是一样的,不一样的是数据库参数

         public boolean InsertSql(user user){

             try{

 

                  insql="insert into user(userid,username,password,email) values(?,?,?,?)";

                  //上面的方法比下面的方法有优势,一方面是安全性,另一方面我忘记了……

                 //insql="insert into user(userid,username,password,email) values(user.getId,user.getName,user.getPassword,user.getEmail)";

                 PreparedStatement ps=conn.prepareStatement(insql);

                 //.preparedStatement(insql);

                 //PreparedStatement  ps=(PreparedStatement) conn.prepareStatement(insql);

                 ps.setInt(1, user.getId());

                 ps.setString(2, user.getName());

                 ps.setString(3, user.getPassword());

                 ps.setString(4, user.getEmail());

                 int result=ps.executeUpdate();

                 //ps.executeUpdate();无法判断是否已经插入

                 if(result>0)

                     return true;

             }catch(Exception e){

                 e.printStackTrace();

             }

             return false;

         }

 

 

         //与其他操作相比较,查询语句在查询后需要一个查询结果集(ResultSet)来保存查询结果

         public void SelectSql(String sql){

             try{

                 Statement statement=conn.createStatement();

                 rs=statement.executeQuery(sql);

                 while(rs.next()){

                     name=rs.getString("username");

                    System.out.println(rs.getString("userid")+name+rs.getString("email"));

                  }

             }catch(Exception e){

                 e.printStackTrace();

             }

 

         }

 

         public boolean UpdateSql(String upsql){

        try {

            PreparedStatement ps = conn.prepareStatement(upsql);

            int result=ps.executeUpdate();//返回行数或者0

            if(result>0)

                return true;

        } catch (SQLException ex) {

            Logger.getLogger(ConnectDatabase.class.getName()).log(Level.SEVERE, null, ex);

        }

        return false;

         }

 

         public boolean DeletSql(String delsql){

 

        try {

            PreparedStatement ps = conn.prepareStatement(upsql);

            int result=ps.executeUpdate(delsql);

            if(result>0)

                return true;

        } catch (SQLException ex) {

            Logger.getLogger(ConnectDatabase.class.getName()).log(Level.SEVERE, null, ex);

        }

        return false;

         }

 

 

  }

 

*************************************************************************

用来测试上面方法的类:

 

package shuishengmu;

 

import java.sql.SQLException;

import shuishengmu.ConnectDatabase.user;

 

 

public class Main {

 

   

         public static void main(String args[]) throws SQLException{

         ConnectDatabase cd=new ConnectDatabase();

         user user=cd.new user();

         cd.ConnectMysql();

         user.setId(14);//每次测试运行都要改变该数字

         user.setName("zhangsan");

         user.setPassword("we23");

         user.setEmail("udjdj@125.com");

         cd.upsql="update user set username='we' where userid=5";

         cd.delsql="delete from user where userid=1";

         //cd.InsertSql(user,"kkk");

         cd.InsertSql(user);

         cd.DeletSql(cd.delsql);

         cd.UpdateSql(cd.upsql);

         cd.SelectSql(cd.sql);

         cd.CutConnection(cd.conn);

         }

}

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值