Spring的jdbcTemplate操作
来源:互联网 发布:伯德生涯数据 编辑:程序博客网 时间:2024/06/06 08:45
jdbcTemplate
- Spring对jdbc进行的封装
jdbcTemplate的使用
Step1: 导入jar包
Step2: 设置数据库的信息
- Step3: 创建jdbcTemplate对象,设置数据源
Step4: 使用jdbcTemplate对象的方法,进行crud操作
public class JdbcTempalteDemo {private static Logger log = Logger.getLogger(JdbcTempalteDemo.class);public static JdbcTemplate getJdbcTemplate(){ JdbcTemplate jdbcTemplate = null; //1. 设置数据库信息 DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql:///test"); dataSource.setUsername("root"); dataSource.setPassword("123456"); //2. 创建jdbcTemplate对象,设置数据源 jdbcTemplate = new JdbcTemplate(dataSource); return jdbcTemplate;}public static int addUser(){ log.info("===============添加用户========="); JdbcTemplate tempalte = getJdbcTemplate(); //3. 调用jdbcTemplate对象的方法实现操作 //SQL语句 String sql = "INSERT INTO user(name,birthday,money) VALUES(?,?,?)"; ### 添加、修改和删除都可以调用该方法 int rows = tempalte.update(sql, "小南","2010-10-10",3000.0); return rows;}
查询操作
jdbcTemplate实现查询,有接口RowMapper,jdbcTemplate针对这个接口没有提供实现类,得到不同的类型数据需自己进行数据封装
- jdbc的实现
public static void jdbcDone(){ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { //1. 加载数据库的驱动 Class.forName("com.mysql.jdbc.Driver"); //2. 创建连接 conn = DriverManager.getConnection("jdbc:mysql:///test","root","123456"); //3. 编写SQL语句 String sql = "SELECT * FROM user WHERE name = ?"; ps = conn.prepareStatement(sql); ps.setString(1, "小南"); rs = ps.executeQuery(); //遍历结果集 List<User> userList = new ArrayList<User>(); while(rs.next()){ Integer uid = rs.getInt("id"); String userName = rs.getString("name"); String birthday = rs.getString("birthday"); Double salary = rs.getDouble("money"); userList.add(new User(uid, userName, birthday, salary)); } for (User user : userList) { System.out.println(user); } } catch (Exception e) { e.printStackTrace(); }finally{ try { rs.close(); ps.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } //3. }
查询返回某个值(统计)
public static int queryCount(){ log.info("===============统计用户的数据========="); JdbcTemplate tempalte = getJdbcTemplate(); //3. 调用jdbcTemplate对象的方法实现操作 //SQL语句 String coutSql = "select count(*) from user"; /** * 第二个参数:返回结果要求的类型 */ int count = tempalte.queryForObject(coutSql, Integer.class); return count;}
查询返回一个对象
//查询操作public static void queryObject(){ log.info("===============查询单个对象========="); JdbcTemplate tempalte = getJdbcTemplate(); //3. 调用jdbcTemplate对象的方法实现操作 //SQL语句 String objSql = "SELECT * FROM user WHERE name = ? "; //第二个参数为RowMapper的实现类,需要自己写实现类封装查询的结果 User user = tempalte.queryForObject(objSql, new UserMapper(), "小南"); System.out.println(user);}public class UserMapper implements RowMapper<User> { @Override public User mapRow(ResultSet rs, int rowNum) throws SQLException { Integer uid = rs.getInt("id"); String userName = rs.getString("name"); String birthday = rs.getString("birthday"); Double salary = rs.getDouble("money"); return new User(uid, userName, birthday, salary); }}
查询返回list集合
/** * 查询集合 */public static void queryList(){ log.info("===============查询多个对象========="); JdbcTemplate tempalte = getJdbcTemplate(); //3. 调用jdbcTemplate对象的方法实现操作 //SQL语句 String selSql = "SELECT * FROM user"; //第二个参数为RowMapper的实现类,需要自己写实现类封装查询的结果 List<User> userList = tempalte.query(selSql, new UserMapper()); System.out.println(userList);}
0 0
- Spring的jdbcTemplate操作
- Spring的jdbcTemplate操作
- Spring的jdbcTemplate操作
- 用Spring对JDBC的操作:JdbcTemplate
- 使用Spring 内置的JdbcTemplate操作数据库
- 使用Spring的jdbcTemplate简化JDBC操作
- Spring基于jdbcTemplate对数据库的操作
- 使用Spring的JdbcTemplate简化jdbc操作
- 使用Spring JDBCTemplate简化JDBC的操作
- 使用Spring JDBCTemplate简化JDBC的操作
- 使用Spring JDBCTemplate简化JDBC的操作
- spring jdbctemplate 实现数据库的查询操作
- Spring JdbcTemplate批量操作
- spring jdbcTemplate操作 CLOB
- spring jdbctemplate批量操作
- Spring (六) 使用Spring 内置的JdbcTemplate操作数据库
- Spring使用JdbcTemplate操作数据库
- Spring使用JdbcTemplate操作数据库
- POJ3660Cow Contest(floyed算法模板)
- 提高Sqlserver大批量插入数据速度的几点方法
- Python学习笔记:字符串格式化方式
- Matlab中size()是什么意思?
- bind函数—绑定地址和端口
- Spring的jdbcTemplate操作
- 题目1054:字符串内排序 九度OJ
- Accelerated C++<4-2>
- 二叉树
- 设计模式——设计模式三大分类以及六大原则
- 华为笔试编程题(逆序求和)
- 旅游规划-单源最短路问题基于Dijkstra来考虑距离以及等距离时按收费更新来更新路径
- Java内存溢出详解及解决方案
- Android去除AppBarLayout阴影