javaee学习日记之java基础之jdbc

MySql数据库连接

原始连接

import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = "123456";
        String driver = "com.mysql.jdbc.Driver";
        String name = "tom";

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

            ) {
            String sql = "SELECT * FROM USERS WHERE UESRNAME='" + name + "'";

            Statement stm = conn.createStatement();

            ResultSet rs = stm.executeQuery(sql);

            if (rs.next()) {

                System.out.println("存在" + rs.getString("username"));

            } else {

                System.out.println("不存在");

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
db.properties文件的内容
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
initialSize=10
maxActive=50 
maxIdle=20 
minIdle=5 
maxWait=60000

----------------------------------------------------//原始工具类(获取MySql数据库连接)
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;
    static {

        Properties properties = new Properties();//properties文件类
        try {
            properties.load(DBUtils.class.getClassLoader().getResourceAsStream("db.properties"));//加载文件
            url =  properties.getProperty("url");//获取文件中的url
            user = properties.getProperty("user");//获取文件中的user
            password = properties.getProperty("password");//获取文件中的password
            driver = properties.getProperty("driver");//获取文件中的driver
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        try {
            Class.forName(driver);//进行加载驱动

        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public static Connection getConnection() {

        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, user, password);//获取连接
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return conn;//返回连接
    }

    public static void removeConnection(Connection conn){
        if(conn != null){//判断连接是否还在继续
            try {
                conn.close();//关闭资源
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
----------------------------------------------------//apache工具类(获取MySql数据库连接)
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.apache.commons.dbcp2.BasicDataSourceMXBean;

public class ConnectionSource {
    private static BasicDataSource bs;
    static {

        Properties properties = new Properties();//properties文件类
        try {
            properties.load(ConnectionSource.class.getClassLoader().getResourceAsStream("db.properties"));//加载文件
             bs = BasicDataSourceFactory.createDataSource(properties);//加载驱动
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

    public static Connection getConnection() {

        Connection conn = null;
        try {
            conn = bs.getConnection();//获取连接
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return conn;//返回连接
    }

    public static void removeConnection(Connection conn){
        if(conn != null){//判断连接是否断开
            try {
                conn.close();//释放资源
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

数据库查询

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class EmpDao {
    public static void main(String[] args) {
        try {
            Connection connection = ConnectionSource.getConnection();//通过工具类进行数据库连接

            Statement st = connection.createStatement();//获得数据库操作对象

            String sql = "select * from emp";//sql语句

            ResultSet rs = st.executeQuery(sql);//查询结果集对象

            while(rs.next()){//判断是否有数据
                System.out.println(rs.getInt("empno") + " " + rs.getString("ename") + " " +rs.getDouble("sal") + " " + rs.getDate("hiredate"));//输出查询结果(其中一条)
            }

            ConnectionSource.removeConnection;通过工具类释放资源
        }  catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

Dao工具类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import cn.baidu.dao.ConnectionSource;

public class EmpDao {
   private static Connection con;

   public static void add(Emp emp){
       PreparedStatement ps = null;
       try {
        String sql = "insert into emp value(?,?,?,?,?,?,?,?)";
        con = ConnectionSource.getConnection();
        ps =  con.prepareStatement(sql);
        ps.setInt(1,emp.getEmpno());
        ps.setString(2,emp.getEname());
        ps.setString(3, emp.getJob());
        ps.setInt(4,emp.getMgr());
        ps.setDate(5,emp.getHiredate());
        ps.setDouble(6,emp.getSal());
        ps.setDouble(7,emp.getComm());
        ps.setInt(8, emp.getDeptno());

        int cont = ps.executeUpdate();
        if(cont>0){
            System.out.println("插入了" + cont +"条数据");
        }else{
            System.out.println("插入失败");
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            ps.close();
            ConnectionSource.removeConnection(con);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
   }
   public static void del(Emp emp){
       PreparedStatement ps = null;
       try {
           String sql = "DELETE FROM emp WHERE empno = ?";
        con = ConnectionSource.getConnection();
        ps =  con.prepareStatement(sql);
        ps.setInt(1,emp.getEmpno());

        int cont = ps.executeUpdate();
        if(cont>0){
            System.out.println("删除了" + cont +"条数据");
        }else{
            System.out.println("删除失败");
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            ps.close();
            ConnectionSource.removeConnection(con);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
   }
   public static void qu(Emp emp){
       PreparedStatement ps = null;
       try {
           String sql = "UPDATE emp SET sal = ? WHERE empno = ?";
        con = ConnectionSource.getConnection();
        ps =  con.prepareStatement(sql);
        ps.setDouble(1,emp.getSal());
        ps.setInt(2,emp.getEmpno());

        int cont = ps.executeUpdate();
        if(cont>0){
            System.out.println("修改" + cont +"条数据");
        }else{
            System.out.println("修改失败");
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            ps.close();
            ConnectionSource.removeConnection(con);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
   }
}

批处理

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import cn.baidu.dao.ConnectionSource;

public class Batch {
    public static void main(String[] args) {
        batchAdd();
    } 
    public static void batchAdd(){
        Connection conn = ConnectionSource.getConnection();
        try {
            Statement sm = conn.createStatement();
            for(int i = 1;i<=100;i++){
                String ename = "'name" + i + "'";
                Double dou = Math.random() * 10000;
                String sql = "insert into emp(ename,sal) value(" + ename + "," + dou +")";
                sm.addBatch(sql);
            }
            sm.executeBatch();
            sm.clearBatch();

            boolean bo = conn.getAutoCommit();
            conn.setAutoCommit(false);
            conn.commit();

            conn.setAutoCommit(bo);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            try {
                conn.rollback();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        }finally {
           ConnectionSource.removeConnection(conn);
        }

    }
}

批查询

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import cn.baidu.dao.ConnectionSource;

public class EmpDAO {
    public static void main(String[] args) {
        findByPageMySQL();
    }

    public static void findByPageMySQL() {
     int x = 0;
     int y = 50;
     Connection conn = ConnectionSource.getConnection();
     Statement sm = null;
    try {
        sm = conn.createStatement();
        for(int i = 0;i<20000;i++){
             x = 50*i;
             String sql = "select * from persons " + " limit " + x + "," + y ;
             ResultSet rs = sm.executeQuery(sql);
             while(rs.next()){
                 System.out.print( rs.getInt("id") + ":" + rs.getString("lastname"));
             }
             System.out.println();
         }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        ConnectionSource.removeConnection(conn);
    }
    }
}

批更新

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import cn.baidu.dao.ConnectionSource;

public class Trans {
    public static void main(String[] args) {
        transfer("'A'","'B'",100.00);
    }

    public static void transfer(String from, String to, double amount) {
        String sql = "update account set amount = amount - " + amount + "where id = " + from;
        String sql2 = "update account set amount = amount + " + amount + "where id = " + to;
        Connection conn = null;
        try {
            conn = ConnectionSource.getConnection();
            Statement sm = conn.createStatement();
            sm.executeUpdate(sql);
            sm.executeUpdate(sql2);

            boolean bo = conn.getAutoCommit();
            conn.setAutoCommit(false);
            conn.commit();

            conn.setAutoCommit(bo);

        } catch (SQLException e) {
            try {
                conn.rollback();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        } finally {
            ConnectionSource.removeConnection(conn);
        }

    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值