【Java】Jdbc基础代码以及问题总结

数据库(名称为database)信息

所需jar包

实体类

public class User {
	private String username;
	private String password;
	
/................/
/................/
/................/
	
}
public class JdbcTemplateSource {
	
	//Jdbc最原始代码
	@Test
	public void JdbcSource() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try {
			//加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			conn = (Connection) DriverManager.getConnection("jdbc:mysql:///database", "root", "root");		
			String sql = "select * from test where username=?";
			//预编译sql
			pstmt = (PreparedStatement) conn.prepareStatement(sql);
			//pstmt是从1开始 , hql是从0开始
			pstmt.setString(1, "aa");
			rs = pstmt.executeQuery();
			
			//光标一开始位于第一行之前 next后才能移到第一行 才能进行getString操作
			rs.next();
			String username = rs.getString("username");
			String password = rs.getString("password");
			
			User user = new User();
			user.setUsername(username);
			user.setPassword(password);
			
			System.out.println(user);
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				rs.close();
				pstmt.close();
				conn.close();
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
}

 

问题总结:

1.数据库连接,使用时创建,使用完之后释放,对数据库进行频繁的开启和关闭,造成数据库资源浪费,影响性能

  *解决:使用数据库连接池管理数据库连接

2.将sql语句硬编码(写死了,固定了)到java代码中,如果sql语句要修改,需要重新编译java代码,硬编码就不利于系统维护

  *解决:将sql语句配置在xml中

3.向preparedStatement中设置参数,对占位符号和设置参数值,硬编码在java代码中,同样不利于系统维护

  *解决:也将占位符和参数配置在xml中

4.从resultSet(getString)等方法获取数据,同样也是硬编码,不利于维护

  *解决:将查询的结果集,自动映射成java对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值