专栏首页用户2442861的专栏JAVA对Mysql进行连接、插入、修改、删除操作

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

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 条评论
登录 后参与评论

相关文章

  • Java基础之String中equals,声明方式,等大总结

        转载请注明出处:http://blog.csdn.net/dmk877/article/details/49420141 

    bear_fish
  • 用GDB调试程序(一)

    http://blog.csdn.net/haoel/article/details/2879

    bear_fish
  • java+内存分配及变量存储位置的区别

    Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细...

    bear_fish
  • 【聚合支付平台】如何智用【模板+工厂】设计模式来实现异步回调

    须臾之余
  • salesforce零基础学习(七十五)浅谈SOSL(Salesforce Object Search Language)

    在工作中,我们更多操作的是一个表的对象,所以我们对SOQL的使用很多。但是有时候,我们需要对几个表进行查询操作,类似salesforce的全局搜索功能,这时,使...

    用户1169343
  • 算法细节系列(20):Word Ladder系列

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    用户1147447
  • 微信公众号H5支付遇到的那些坑

    官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。

    小柒2012
  • Android项目重构之路:实现篇(一)

    前两篇文章《Android项目重构之路:架构篇》和《Android项目重构之路:界面篇》已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的...

    Keegan小钢
  • JVM系列之:String.intern和stringTable

    StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有起到了什么作用呢?

    程序那些事
  • JMail接收发送邮件使用参考

    用户2135432

扫码关注云+社区

领取腾讯云代金券