事务是一组原子性的操作序列,要么全副胜利执行,要么全副失败。在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:

<dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>3.5.6</version></dependency>

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<User> findAll();    @Insert("INSERT INTO users (name, age) VALUES (#{name}, #{age})")    void insert(User user);}

接着,创立一个mybatis-config.xml配置文件,配置MyBatis:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://localhost:3306/mydb?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"/>                <property name="username" value="root"/>                <property name="password" value="mypassword"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper class="UserMapper"/>    </mappers></configuration>

最初,应用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<User> 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