MySql驱动(jar包)下载:https://pan.baidu.com/s/19BYnGbO3l5MOOic5K4Ooaw密码:mwoh
第三方插件(commons-dbutils)下载:https://pan.baidu.com/s/17cyAXHZLgiayx5Y_VHvawQ密码:6om2
commons-dbutils-1.6.jar---右键---Build Path---Add to Build Path
【javaSE 第三方插件commons-dbutils, 操作数据库的工具类, QueryRunner类, (update() 增、删、改操作)】Demo.java:
package cn.xxx.demo;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import cn.xxx.jdbcutil.JDBCUtilsConfig;
/*
*使用QueryRunner类,实现对数据表的
*insert delete update
*调用QueryRunner类的方法 update (Connection con,String sql,Object... param)
*Object...param 可变参数,Object类型;
用于替换SQL语句中的?占位符
*/
public class Demo {
private static Connection con = JDBCUtilsConfig.getConnection();
public static void main(String[] args)throws SQLException {
//insert();
delete();
} public static void delete()throws SQLException{
QueryRunner qr = new QueryRunner();
//创建QueryRunner类对象
String sql = "DELETE FROM sort WHERE sid=?";
int row = qr.update(con, sql, 8);
// 执行SQL语句。 第三个参数可以是不定参数Object... ;
也可以是单个Object。
System.out.println(row);
DbUtils.closeQuietly(con);
// 关闭资源
} public static void insert()throws SQLException{
QueryRunner qr = new QueryRunner();
//创建QueryRunner类对象
String sql = "INSERT INTO sort (sname,sprice,sdesc)VALUES(?,?,?)";
Object[] params = {"体育用品",289.32,"购买体育用品"};
// 不定长的参数可以用数组传递
int row = qr.update(con, sql, params);
// 执行SQL语句
System.out.println(row);
DbUtils.closeQuietly(con);
// 关闭资源
}
}
JDBCUtilsConfig.java(自定义的数据库工具类,用于获取数据库连接对象):
package cn.xxx.jdbcutil;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class JDBCUtilsConfig {
private static Connection con ;
private static String driverClass;
private static String url;
private static String username;
private static String password;
static{// 静态代码块,只会被执行一次
try{
readConfig();
Class.forName(driverClass);
con = DriverManager.getConnection(url, username, password);
}catch(Exception ex){
throw new RuntimeException("数据库连接失败");
}
}
private static void readConfig()throws Exception{
InputStream in = JDBCUtilsConfig.class.getClassLoader().getResourceAsStream("database.properties");
Properties pro = new Properties();
pro.load(in);
driverClass=pro.getProperty("driverClass");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
}
public static Connection getConnection(){
return con;
}
}
推荐阅读
- shiro的作用和执行流程总结
- 黑马程序员18-4(【day18集合泛型 练习与总结】)
- 05|循环得到resultset中的值
- JavaSE|JAVA8反射获取方法参数名
- javaSE|javaEE JDBC, dbutils插件, 事务
- javaSE 第三方插件commons-dbutils, 操作数据库的工具类, QueryRunner类, (query() 查询操作)
- 邮件开发(邮件作用、邮件服务器、电子邮箱与邮件客户端软件)
- 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
- javase|创建两个线程,其中一个输出1-52,另外一个输出A-Z。输出格式要求(12A 34B 56C 78D 依次类推)