JdbcUtils
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcUtil {
private static String url = "jdbc:sqlserver://localhost:1433;DataBaseName=db_test";
private static String username = "sa";
private static String password = "sa";
private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public JdbcUtil() {
super();
// TODO Auto-generated constructor stub
}
static {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
public static void close(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(st!=null){
st.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
Crude。java
package jdbcConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import utils.JdbcUtil;
public class CrudTest {
private static void add() throws SQLException {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConnection();
String sql = "insert into [user](name,password,email,age,birthday,money) values(?,?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "psName");
ps.setString(2, "psPassword");
ps.setString(3, "jkjs@126.com");
ps.setInt(4, 23);
ps.setDate(5, new java.sql.Date(new java.util.Date().getDate()));
ps.setFloat(6, 2344);
ps.executeUpdate();
} finally {
JdbcUtil.close(rs, ps, conn);
}
}
private static void get() throws SQLException {
// TODO Auto-generated method stub
Connection conn=null;
PreparedStatement ps =null;
ResultSet rs = null;
try {
conn= JdbcUtil.getConnection();
String sql = "select id,name,password,email,birthday,money from [user]";
ps = conn.prepareStatement(sql);
rs= ps.executeQuery();
while(rs.next()){
int id= rs.getInt("id");
String name =rs.getString("name");
String pass=rs.getString("password");
String email = rs.getString("email");
Date birthday =rs.getDate("birthday");
float money= rs.getFloat("money");
System.out.println("id是:"+id+"姓名是: "+name+" 密码是:"+pass+"邮箱是:"
+email+"生日是: "+birthday+"工资是"+money);
}
} finally{
JdbcUtil.close(rs, ps, conn);
}
}
private static void update() throws SQLException {
// TODO Auto-generated method stub
Connection conn=null;
PreparedStatement ps =null;
ResultSet rs = null;
try {
conn= JdbcUtil.getConnection();
String sql = "update [user] set name='lucy',password='123',money=5000 where id=1";
ps= conn.prepareStatement(sql);
ps.executeUpdate();
} finally{
JdbcUtil.close(rs, ps, conn);
}
}
private static void delete() throws SQLException {
// TODO Auto-generated method stub
Connection conn=null;
PreparedStatement ps =null;
ResultSet rs = null;
try {
conn= JdbcUtil.getConnection();
String sql = "delete from [user] where id=1";
ps= conn.prepareStatement(sql);
ps.executeUpdate();
} finally{
JdbcUtil.close(rs, ps, conn);
}
}
}
Jdbc事务管理
模拟银行取帐
TransferTest.java
package test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import util.JdbcUtil;
public class TransactionTest {
public static void main(String[] args)throws SQLException {
transferTest();
}
public static void transferTest()throws SQLException{
int id1 =3;
float m1= 100.0f;
int id2 = 4;
transfer2(id1,m1,id2);
}
public static boolean transfer2(int id1,float m1,int id2)throws SQLException{
boolean flag = false;
Connection conn =null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConnection();
conn.setAutoCommit(false);
String sql = "update [user] set money = money=? where id = ?";
ps= conn.prepareStatement(sql);
ps.setFloat(1, m1);
ps.setInt(2, id1);
ps.executeUpdate();
String sql1 = "update [user] set money = money+? where id = ?";
ps= conn.prepareStatement(sql);
ps.setFloat(1, m1);
ps.setInt(2, id2);
ps.executeUpdate();
conn.commit();
} catch (SQLException e) {
// TODO 自动生成 catch 块
conn.rollback();
throw e;
}finally{
JdbcUtil.close(rs, ps, conn);
}
return flag;
}
}
必须有回滚处理
否则可能会造成数据混乱!
分享到:
相关推荐
`JdbcUtil` 类是常见的Java开发中用于简化数据库操作的工具类,它封装了数据库连接的创建、关闭等繁琐过程,使代码更加简洁且易于管理。在本篇文章中,我们将深入探讨`JdbcUtil`类的原理及其在实际应用中的作用。 ...
通过JDBCUtils这个文件名,我们可以推测这个类可能包含了一些常用的数据库操作方法,如连接数据库、执行SQL语句、处理结果集、关闭资源等。在实际开发中,这样的工具类有助于提高代码的可复用性和可维护性,同时减少...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题) 用户账号实体类 User....
5. **资源的关闭**:为了防止资源泄露,`JdbcUtil`通常会包含一个`closeQuietly()`方法,用于优雅地关闭数据库连接、Statement或ResultSet。 在初学者阶段,使用`JdbcUtil`有助于理解数据库操作的基本流程,并避免...
工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题 DBCP方式实现连接池、配置连接池 ==> 获得连接对象连接数据库) 用户账号实体类 User.java(私有化数据库t_user表中的id,username,password) 接口类 ...
JdbcUtil是一个常见的实用类,用于封装数据库连接、查询、更新等基本操作,以提高代码的可读性和可维护性,避免资源泄露。在给定的"JdbcUtil.rar_jdbcUtil_jdbcut"压缩包中,包含的文件"JdbcUtil"可能是这个工具类的...
1. **连接管理**:JdbcUtil通常包含建立和关闭数据库连接的方法。在`getConnection()`方法中,会使用`DriverManager.getConnection()`来初始化数据库连接。为了防止资源泄露,还需要提供`closeConnection()`方法来...
`JDBCUtil`通常是指一个实用工具类,它封装了与数据库交互的常见操作,如建立连接、执行SQL语句、处理结果集等。这个`JDBCUtil.rar_jdbcUtil`压缩包可能包含了实现这些功能的代码示例。接下来,我们将深入探讨JDBC...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...
Java读取properties文件连接数据库的方法示例 本篇文章主要介绍了Java读取properties文件连接数据库的方法示例,该方法可以提高代码的复用性和灵活性。 在Java中,连接数据库的方式有很多,但是一般来说,我们都会...
`JdbcUtil.java` 是一个Java类,用于简化使用...总的来说,`JdbcUtil` 类提供了一个基础的数据库访问框架,简化了数据库连接、查询结果处理和资源管理的过程,使得开发者可以更专注于SQL语句的编写和业务逻辑的实现。
达梦数据库JDBC(Java Database Connectivity)是连接Java应用程序与达梦数据库系统的重要桥梁,它允许Java开发者在Java程序中执行SQL语句,实现对达梦数据库的数据操作。达梦数据库是中国自主研发的一款高性能、高...
定义一个使用jdbc连接数据库的工具类JdbcUtil.java,用于读取配置文件内容和注册驱动程序。该类包括: * 全局变量:url、user、password、driverClass * 静态代码块:用于读取配置文件内容和注册驱动程序 * get...
本资料"Java数据库操作类20170703"聚焦于利用Java进行数据库交互,并且支持多种类型的数据库,包括Excel、Access、MSSQLServer、MySQL、Oracle以及通过JDBC-ODBC桥连接的其他数据库。它特别强调了使用数据库连接池来...
将java开发过程中连接数据库的过程封装,简化dao层的代码,可以大大提高开发效率。本工具主要遵循"既有默认规则,又可灵活配置"的原则,通过编写通用的basedao,实现通用的数据库连接过程,通过配置文件实现连接指定...
在描述中提到的“用jdbc连接数据库的小模块,省去了繁琐的步骤,一个方法就搞定”,这表明`JdbcUtil_2.java` 文件提供了一个功能强大的静态方法,该方法可能封装了整个数据库连接、执行SQL语句和关闭资源的流程。...
Java-JDBC【源码】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况 1.数据库连接池 2.Durid介绍(官方文档) 3.编码,问题,常规并发操作 3.1.JDBCUtil....
本教程将详细讲解如何利用JDBC工具类来建立MySQL数据库的连接,并实现登录功能。 首先,我们需要确保已经安装了MySQL数据库并创建了一个用户表,该表至少包含用户名(username)和密码(password)两个字段,用于...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬编码问题) 用户账号实体类 User....