• Spring JDBC数据库开发


    针对数据库操作,Spring框架提供了JdbcTemplate类。

    1.Spring JDBC的配置

    创建配置文件applicationContext.xml,添加如下代码:

     1    <!--配置数据源-->
     2     <bean id="dataSource"
     3           class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     4         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
     5         <property name="url" value="jdbc:mysql://localhost:3306/springjdbc"/>
     6         <property name="username" value="root"/>
     7         <property name="password" value="root"/>
     8     </bean>
     9     <!--配置JDBC模板-->
    10     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    11         <property name="dataSource" ref="dataSource"/>
    12     </bean>
    13     <!--配置注入类-->
    14     <bean id="userDao" class="com.wxy.model.UserDaoImpl">
    15         <property name="jdbcTemplate" ref="jdbcTemplate"/>
    16     </bean>

    2.创建Javabean和Dao接口

     1 public class User {
     2     private Integer id;
     3     private String name;
     4     private Integer age;
     5 
     6     public Integer getId() {  return id; }
     7 
     8     public void setId(Integer id) {
     9         this.id = id;
    10     }
    11 
    12     public String getName() {
    13         return name;
    14     }
    15 
    16     public void setName(String password) {
    17         this.name = password;
    18     }
    19 
    20     public Integer getAge() { return age; }
    21 
    22     public void setAge(Integer age) {
    23         this.age = age;
    24     }
    25 }
    javabean
    public interface UserDao {
        public void execute();
        public int addUser(User user);
        public int updateUser(User user);
        public int deleteUser(int id);
        public void query();
    }
    UserDao

    3.Spring JdbcTemplate的常用方法

    2.1 execute(String sql)执行SQL语句

    2.2 update()插入、更新、删除表数据操作

    2.3 query()查询操作

    上述的三个数据库操作方法都放在UserDaoImpl实现类中调用,具体代码如下:

     1 import com.wxy.javabean.User;
     2 import org.springframework.dao.DataAccessException;
     3 import org.springframework.jdbc.core.JdbcTemplate;
     4 import org.springframework.jdbc.core.ResultSetExtractor;
     5 
     6 import java.sql.ResultSet;
     7 import java.sql.SQLException;
     8 import java.util.ArrayList;
     9 import java.util.List;
    10 
    11 public class UserDaoImpl implements UserDao {
    12     //获取JdbcTemplate实例
    13     private JdbcTemplate jdbcTemplate;
    14     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    15         this.jdbcTemplate = jdbcTemplate;
    16     }
    17     //执行SQL语句的方法
    18     @Override
    19     public void execute() {
    20         jdbcTemplate.execute("create table account( id int primary key auto_increment,"
    21                 + "username varchar(50)," + "balance double)");
    22     }
    23     //添加用户
    24     @Override
    25     public int addUser(User user) {
    26         String sql = "insert user (id,name,age) value(?,?,?)";
    27         //定义数组来存储SQL语句中的参数
    28         Object[] obj = new Object[]{
    29                 user.getId(),
    30                 user.getName(),
    31                 user.getAge()
    32         };
    33         int num = this.jdbcTemplate.update(sql,obj);
    34         return num;
    35     }
    36     //更新用户信息
    37     public int updateUser(User user){
    38         String sql = "update user set name=?,age=? where id=?";
    39         Object[] params = new Object[]{
    40                 user.getName(),
    41                 user.getAge(),
    42                 user.getId()
    43         };
    44         int num = this.jdbcTemplate.update(sql,params);
    45         return num;
    46     }
    47     //删除用户
    48     @Override
    49     public int deleteUser(int id) {
    50         String sql = "delete from user where id =?";
    51         int num = jdbcTemplate.update(sql,id);
    52         return num;
    53     }
    54     //查询所有用户
    55     @Override
    56     public void query() {
    57         String listSql = "select * from user";
    58         List<User> list = jdbcTemplate.query(listSql, new ResultSetExtractor<List>() {
    59             public List<User> extractData(ResultSet rs) throws SQLException,
    60                     DataAccessException {
    61                 List<User> result = new ArrayList<User>();
    62                 while (rs.next()) {
    63                     User user = new User();
    64                     user.setId(rs.getInt("id"));
    65                     user.setName(rs.getString("name"));
    66                     user.setAge(rs.getInt("age"));
    67                     result.add(user);
    68                 }
    69                 return result;
    70             }
    71         });
    72 
    73         for (User user : list) {
    74             System.out.print("id=" + user.getId() + " ");
    75             System.out.print("name=" + user.getName() + " ");
    76             System.out.println("age=" + user.getAge() + " ");
    77         }
    78     }
    79 }

    4.编写测试类Test

     1 import com.wxy.javabean.User;
     2 import com.wxy.model.UserDaoImpl;
     3 import org.junit.Test;
     4 import org.springframework.context.ApplicationContext;
     5 import org.springframework.context.support.ClassPathXmlApplicationContext;
     6 
     7 public class JdbcTemplateTest {
     8     @Test
     9     public void executeTest(){
    10         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    11         UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
    12         userDao.execute();
    13         System.out.println("创建成功!");
    14     }
    15     @Test
    16     public void addTest(){
    17         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    18         UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
    19         User user = new User();
    20         user.setId(3);
    21         user.setName("Tom");
    22         user.setAge(21);
    23         int num = userDao.addUser(user);
    24         if(num>0){
    25             System.out.println("成功添加"+num+"个用户");
    26         }else {
    27             System.out.println("添加用户操作失败!");
    28         }
    29     }
    30     @Test
    31     public void updateTest(){
    32         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    33         UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
    34         User user = new User();
    35         user.setId(2);
    36         user.setName("Tim");
    37         user.setAge(26);
    38         int num = userDao.addUser(user);
    39         if(num>0){
    40             System.out.println("成功修改"+num+"个用户");
    41         }else {
    42             System.out.println("修改用户信息失败!");
    43         }
    44     }
    45     @Test
    46     public void deleteTest(){
    47         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    48         UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
    49         int num = userDao.deleteUser(2);
    50         if(num>0){
    51             System.out.println("成功删除"+num+"个用户");
    52         }else {
    53             System.out.println("删除用户操作失败!");
    54         }
    55     }
    56     @Test
    57     public void query(){
    58         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    59         UserDaoImpl userDao = (UserDaoImpl) applicationContext.getBean("userDao");
    60         userDao.query();
    61     }
    62 }
  • 相关阅读:
    简明python_Day2_字典、集合、模块、类、编程习惯
    测试2T2
    测试2T1
    bzoj2761
    一元三次方程求根公式及韦达定理
    状压DP入门——铺砖块
    高精度模板
    测试1T3
    测试1T2
    测试1T1
  • 原文地址:https://www.cnblogs.com/wxywxy/p/8646352.html
Copyright © 2020-2023  润新知