事务是一组原子性的操作序列,要么全部成功执行,要么全部失败。在Java中,可以通过Connection
对象来管理事务。以下示例展示了如何使用事务处理进行数据插入操作:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class JdbcTransactionExample {
public static void main(String[] args) {
try {
// 加载数据库驱动并连接到数据库
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String password = "mypassword";
Connection connection = DriverManager.getConnection(url, username, password);
// 关闭自动提交,开始事务处理
connection.setAutoCommit(false);
// 插入数据
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
// 添加数据
preparedStatement.setString(1, "User 4");
preparedStatement.setInt(2, 35);
preparedStatement.executeUpdate();
preparedStatement.setString(1, "User 5");
preparedStatement.setInt(2, 40);
preparedStatement.executeUpdate();
// 提交事务
connection.commit();
// 关闭资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
7. 使用ORM框架
ORM(对象关系映射)框架可以简化数据库操作,让开发者以面向对象的方式与数据库进行交互。Hibernate和MyBatis是两个常用的Java ORM框架。以下是一个简单的MyBatis示例,展示如何进行数据库操作:
首先,添加MyBatis依赖:
Maven:
org.mybatis
mybatis
3.5.6
Gradle:
implementation 'org.mybatis:mybatis:3.5.6'
接下来,创建一个User
实体类:
public class User {
private Integer id;
private String name;
private Integer age;
// getter 和 setter
}
然后,创建一个UserMapper
接口,用于定义数据库操作方法:
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper {
@Select("SELECT * FROM users")
List findAll();
@Insert("INSERT INTO users (name, age) VALUES (#{name}, #{age})")
void insert(User user);
}
接着,创建一个mybatis-config.xml
配置文件,配置MyBatis:
最后,使用MyBatis进行数据库操作:
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyBatisExample {
public static void main(String[] args) {
try {
// 加载MyBatis配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 打开一个SqlSession
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
// 获取UserMapper接口的实例
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 插入一个用户
User newUser = new User();
newUser.setName("User 6");
newUser.setAge(25);
userMapper.insert(newUser);
// 提交事务
sqlSession.commit();
// 查询所有用户
List users = userMapper.findAll();
for (User user : users) {
System.out.println("ID: " + user.getId() + ", Name: " + user.getName() + ", Age: " + user.getAge());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个示例展示了如何使用MyBatis框架进行基本的数据库操作,包括插入和查询。使用ORM框架可以简化数据库编程,减少开发人员直接编写SQL语句的工作量。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 2023年华南区金融行业客户交流会举办,共话金融数智转型
2023年6月10日,主题为“智算向新 开放融合”的2023年华南区金融行业客户交流会在广东惠州成功举办。面对近百位华南地区的证券、基金客户,浪潮信息、天融信、可利邦等公司的企业代表进行了精彩分享与互动交流,共同探讨如何拥抱AI大模型、隐私计算、大数据、信息安…