java连接mysql数据库实现增删查改

工具

win7 (64位)
Navicat Premium(或者Navicat for MySql)
ubuntu 16.04
mysql 5.7.19
mysql连接驱动:mysql-connector-java-5.1.25.jar(网上很多,自己下载)

加载驱动

  1. 在工程目录中创建lib文件夹,将下载好的JDBC放到该文件夹下,如下图所示:
    java连接mysql数据库实现增删查改_第1张图片
  2. 右键工程名,在properties中的Libraries分页中选择Add JARs…,选择刚才添加的JDBC,如下图:
    java连接mysql数据库实现增删查改_第2张图片

操作数据库

1.数据库准备

java连接mysql数据库实现增删查改_第3张图片
输入数据
java连接mysql数据库实现增删查改_第4张图片

2.连接数据库并读取数据

  数据库名称:test1
  数据包名称:table_test
  端口号:3306
  用户名:root
  密码:root
  虚拟机ip:192.168.179.128

3.代码

  • 主函数
package xuna;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;//导入的包http://www.cnblogs.com/mstk/p/4281724.html

import java.sql.ResultSet;
public class test1 {

    String driver = "com.mysql.jdbc.Driver";
    /*
     * URL指向要访问的数据库名(我用的是数据库名为test)
     * 192.168.179.128:3306 虚拟机的ip,本地用127.0.0.1
     */
    String url = "jdbc:mysql://192.168.179.128:3306/test1?useUnicode=true&characterEncoding=utf-8";

    String user = "root";      //MySQL配置时的用户名
    String password = "root";   //MySQL配置时的密码

    //throw则是指抛出的一个具体的异常类型。
    public static void main(String[] args) throws SQLException
    { 
        test1 a = new test1();
        a.select();
        //a.update();
        //a.insert();
        //a.delete();
        a.select();  
    }
}
  • 连接操作

    /*
     * 连接数据库
     */

    public  Connection getConn() 
    {
        Connection con = null;
        try  
        {  ////加载驱动程序
            Class.forName(driver);  
        }  
        catch (ClassNotFoundException e)  
        {  
            e.printStackTrace();  
        }  
        try  
        {  
            con = DriverManager.getConnection(url,user,password);//注意是三个参数 


        }  
        catch (SQLException e)  
        {  
            e.printStackTrace();
        }
        return con;
    }
  • 查询操作
/*
 * 查询操作
 */

    public void select() throws SQLException
    {  
        String sql = "select * from table_test";  
        Connection con = getConn();//此处为通过自己写的方法getConn()获得连接  
        try{

            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(sql); //ResultSet类,用来存放获取的结果集!!

            System.out.println("执行结果如下所示:");  
            System.out.println("-----------------");  
            System.out.println("id" + "\t" + "名字" + "\t" +"联系方式");  
            System.out.println("-----------------");  

            String id = null;
            String name = null,cell = null;
            while(rs.next()){

                //获取id这列数据
                id = rs.getString("id");
                //获取name这列数据
                name = rs.getString("name");
                cell = rs.getString("cell");
                //输出结果
                System.out.println(id + "\t" + name+"\t"+cell);
            }
            rs.close();
            con.close();
        }
        catch(SQLException e)
        {      
            e.printStackTrace();   
        } 
    }
  • 插入操作
/*
     * 插入操作
     */

    public int insert() 
    {

        int i = 0;
        Connection con = getConn();
        String sql = "insert into table_test (id, name, cell) values (?, ?, ?)";
        try {
            //用来执行SQL语句
            PreparedStatement pst = con.prepareStatement(sql); 
            pst.setLong(1,4);
            pst.setString(2, "许娜");
            pst.setString(3, "123344"); 
            i = pst.executeUpdate();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(i);
        return i; //返回影响的行数,1为执行成功
    }
  • 更新操作
/*
     * 更新操作
     */
    public int update() 
    {
        int i=0;
        String sql = "update table_test set id=?,name=?,cell=? where id =?";
        Connection con=getConn();
        try {
            //用来执行SQL语句
            PreparedStatement pst = con.prepareStatement(sql); 
            pst.setLong(1,1);
            pst.setString(2, "小例");
            pst.setString(3, "45654");
            pst.setLong(4, 1);
            i = pst.executeUpdate();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(i);
        return i;
    }
  • 删除操作
    /*
     * 删除操作
     */
    public int delete() {

        String sql = "delete from table_test where id=1";
        int i=0;
        Connection con = getConn();
        try {

            Statement stmt = con.createStatement();
            i = stmt.executeUpdate(sql);
        }catch (Exception e) {
            e.printStackTrace();
        }
        return i;
    }

在插入数据中最常出现的问题就是插入中文乱码,解决方案:
http://blog.csdn.net/xunalove

你可能感兴趣的:(【Java】,【MySQL】)