java数据库如何存入
数据库连接配置
使用JDBC连接数据库需要配置驱动、URL、用户名和密码。以MySQL为例,需加载com.mysql.jdbc.Driver驱动类,URL格式为jdbc:mysql://hostname:port/database。
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb",
"username",
"password"
);
创建PreparedStatement
PreparedStatement能防止SQL注入,通过占位符?动态插入数据。先定义SQL语句,再创建PreparedStatement对象。
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
设置参数并执行
通过setXXX方法设置参数,索引从1开始。执行executeUpdate()返回受影响的行数。
pstmt.setString(1, "Alice");
pstmt.setInt(2, 25);
int rows = pstmt.executeUpdate();
System.out.println(rows + " rows inserted.");
事务处理
确保操作原子性,通过setAutoCommit(false)关闭自动提交,成功时提交,异常时回滚。
try {
conn.setAutoCommit(false);
// 执行多个SQL操作
conn.commit();
} catch (SQLException e) {
conn.rollback();
e.printStackTrace();
}
资源释放
在finally块中关闭Connection、PreparedStatement等资源,防止内存泄漏。
finally {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
}
使用ORM框架(如Hibernate)
Hibernate简化数据库操作,通过实体类映射表结构。配置hibernate.cfg.xml后,用Session对象保存数据。
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
User user = new User("Bob", 30);
session.save(user);
tx.commit();
session.close();
连接池优化
使用DBCP或HikariCP等连接池管理数据库连接,提升性能。
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("username");
config.setPassword("password");
HikariDataSource ds = new HikariDataSource(config);






