美文网首页
spring-jdbc

spring-jdbc

作者: 充满智慧的白痴 | 来源:发表于2019-12-30 10:29 被阅读0次

    实体类

    package com.sflq.model;
    
    public class User {
        private String username;
        private String password;
    } 
        public User(int age, String username, String password, String status, String score) {
            this.age = age;
            this.username = username;
            this.password = password;
            this.status = status;
            this.score = score;
        }
        public User(){}
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
        @Override
        public String toString(){
            return username+password+age+status+score;
        }
    }
    

    字段映射文件

    package com.sflq.mapper;
    import com.sflq.model.User;
    import org.springframework.jdbc.core.RowMapper;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    public class UserMapper implements RowMapper {
        public User mapRow(ResultSet rs, int rowNum) throws SQLException {
            User user = new User();
            user.setPassword(rs.getString("password"));
            user.setUsername(rs.getString("username"));
            return user;
        }
    }
    

    Dao执行sql文件

    //  此bean需要注入一个dataSource对象
    package com.sflq.daoImpl;
    import com.sflq.dao.UserDao;
    import com.sflq.mapper.UserMapper;
    import com.sflq.model.User;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import javax.sql.DataSource;
    import java.util.List;
    
    public class UserDaoImpl implements UserDao {
        private DataSource dataSource;
        private JdbcTemplate jdbcTemplateObject;
        @Override
        public void setDataSource(DataSource dataSource) {
            this.dataSource = dataSource;
            this.jdbcTemplateObject = new JdbcTemplate(dataSource);
        }
    
        @Override
        public void create(String username, Integer age,String password,String status,String score) {
            String SQL = "insert into user (username, age,password,status,score) values (?,?,?,?,?)";
            jdbcTemplateObject.update( SQL, username, age,password,status,score);
            System.out.println("Created Record Name = " + username + " Age = " + age);
        }
    
        @Override
        public User getUser(Integer id) {
            String SQL = "select * from User where id = ?";
            User user = (User) jdbcTemplateObject.queryForObject(SQL, new Object[]{id}, new UserMapper());
            return user;
        }
    
        @Override
        public List listUsers() {
            String SQL = "select * from user";
            List user = jdbcTemplateObject.query(SQL, new UserMapper());
            return user;
        }
    
        @Override
        public void delete(Integer id) {
    
        }
    
        @Override
        public void update(Integer id, Integer age) {
    
        }
    }
    

    配置dao

    <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </bean>
        // 向dao对象中注入一个dataSource对象
        <bean id="UserDaoImpl" class="com.sflq.daoImpl.UserDaoImpl">
            <property name="dataSource"  ref="dataSource" />
        </bean>
    

    引用dao对象

    package com.sflq;
    import com.sflq.daoImpl.UserDaoImpl;
    import com.sflq.model.User;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import java.util.List;
    public class Application {
        public static void main(String[] args){
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserDaoImpl userDaoImpl = (UserDaoImpl)context.getBean("UserDaoImpl");
            System.out.println("------Records Creation--------" );
            userDaoImpl.create("Zara", 11,"12345","1231","1231");
            System.out.println("------Listing Multiple Records--------" );
            List<User> students = userDaoImpl.listUsers();
            for (User record : students) {
                System.out.print("ID : " + record.getUsername() );
                System.out.print(", Name : " + record.getPassword() );
                System.out.println(", Age : " + record.getAge());
            }
            System.out.println("----Updating Record with ID = 2 -----" );
            userDaoImpl.update(2, 20);
            System.out.println("----Listing Record with ID = 2 -----" );
            User user = userDaoImpl.getUser(2);
            System.out.print("ID : " + user.getUsername() );
            System.out.print(", Name : " + user.getPassword() );
            System.out.println(", Age : " + user.getAge());
        }
    }
    

    总结

    使用spring的jdbc框架,其实就是利用org.springframework.jdbc.core.JdbcTemplate;
    这个类,该类的构造函数需要一个dataSource对象作为参数,而后可以利用实体进行增删改查操作

    相关文章

      网友评论

          本文标题:spring-jdbc

          本文链接:https://www.haomeiwen.com/subject/dpbrpctx.html