java spring jdbc_java学习之数据库操作 传统jdbc、springjdbc

Spring 使java开发变得容易,为开发者节省了不少时间,其中包括数据库的连接与使用。下面将使用三种方式连接数据库:传统的jdbc方式、springjdbc方式。

1.传统jdbc方式

或者采用maven导入jar包

mysql

mysql-connector-java

5.1.38

代码如下:

//1通过直接赋值方式配置

//String url = "jdbc:mysql:///dbname";

//String user = "root";

//String password = "";

//String driverClass = "com.mysql.jdbc.Driver";

//2通过.properties配置文件读取配置

InputStream inputStream = JDBCUtil.class.getClassLoader().getResourceAsStream("dbconfig.properties");

Properties properties = newProperties();

properties.load(inputStream);

String url = properties.getProperty("jdbc.url");

String user = properties.getProperty("jdbc.user");

String password = properties.getProperty("jdbc.password");

String driverClass = properties.getProperty("jdbc.driverClass");

//连接操作

Class.forName(driverClass);

Connection connection =DriverManager.getConnection(url, user, password);

//crud(增删改查)操作

String sql = "sql_crud_statement";

preparedStatement =connection.prepareStatement(sql);

resultSet =preparedStatement.executeQuery();

//解析结果

Student student = null;

while(resultSet.next()) {

int id = resultSet.getInt("id");

int age = resultSet.getInt("age");

//do sth

}

分析:这种传统连接方式实现起来很简单,但是代码量相对较多,而且用完之后还要有手动释放资源的操作,相对的需要有很多重读代码。

2.srping jdbc方式

当然,首要任务是引入包,涉及的包有一点小多,所以首选maven来导入

mysql

mysql-connector-java

5.1.38

org.springframework

spring-jdbc

4.3.5.RELEASE

org.springframework

spring-context

4.3.5.RELEASE

配置好之后就可以进行令人激动地链接数据库操作了

大致流程是首先通过框架里面的上下文机制获取jdbcTemplate(数据模板)对象,然后再通过jdbcTemplate对象进行curd操作:

1.上下文的xml配置beans.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd">

2.加载xml获取jdbcTemplate对象,实现curd

ctx = new ClassPathXmlApplicationContext("beans.xml");

jdbcTemplate = ctx.getBean(“jdbcTemplate”);

jdbcTemplate.query(sql, new RowCallbackHandler(){

// 重写processRow 来实现自己的循环处理结果集

@Override

public void processRow(ResultSet rs) throws SQLException {

int id = rs.getInt("id");

String name = rs.getString("name");

//do sth

}

});

分析:这种方式虽然需要配置上下文,但是实现起来很容易,实现的代码就那么几行,看着效果不错,而且jdbcTemplate对象是已经实现的对象,我们只需要重写里面的processRow方法就可以实现。相比传统方式,这种方法精进了不少,也不用考虑释放资源。

然而这不是框架想要的全部,如果想要其他操作,比如分页操作,实现起来也不是很容易,所有的sql还需要自己写,也不是很方便啊,那么问题来了,有没有真正的“好”的方式来实现呢?下一篇将分析下spring实现curd以及其优点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值