• Spring_JDBC


    //User实体类
    package com.tao.pojo;
    
    public class User {
        
        private int id;
        private String name;
        private String gender;
        
        public User() {
            super();
        }
        public User(int id, String name, String gender) {
            super();
            this.id = id;
            this.name = name;
            this.gender = gender;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", gender=" + gender + "]";
        }    
    
    }
    
    
    //Userdao方法
    
    package com.tao.dao;
    
    import java.util.List;
    
    import com.tao.pojo.User;
    
    public interface UserDAO {
        
        //添加数据库
        public boolean save(User user);
        //更新数据
        public boolean update(User user);
        //根据ID删除数据
        public boolean deleteById(int id);
        //查询所有
        public List<User> QueryAll();
        //根据ID查询
        public User QueryById(int id);    
        
    }
    
    //UserDAOImpl实现类
    
    package com.tao.impl;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import javax.sql.DataSource;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.RowMapper;
    
    import com.tao.dao.UserDAO;
    import com.tao.pojo.User;
    
    public class UserDAOImpl implements UserDAO{
        //生成Template的set方法
        private JdbcTemplate jdbcTemplate;
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
        
    //    返回结果与实体类类做对应用的
        RowMapper<User> mappUser=new RowMapper<User>() {
    
            @Override
            public User mapRow(ResultSet rs, int rowNum) throws SQLException {
                // TODO Auto-generated method stub
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setName(rs.getString("name"));
                user.setGender(rs.getString("gender"));
                return user;
            }
        };
        
        @Override
        public boolean save(User user) {
            // TODO Auto-generated method stub
            int rows = jdbcTemplate.update("insert into user values(?,?,?)", user.getId(),user.getName(),user.getGender());
            if (rows>0) {
                return true;
            }
            return false;
        }
    
        @Override
        public boolean update(User user) {
            // TODO Auto-generated method stub
            int rows = jdbcTemplate.update("update user set name=?,gender=? where id=?",user.getName(),user.getGender(),user.getId());
            if(rows>0) {
                return true;
            }
            return false;
        }
        //根据ID删除
        @Override
        public boolean deleteById(int id) {
            // TODO Auto-generated method stub
            int rows = jdbcTemplate.update("delete from user where id=?", id);
            if (rows>0) {
                return true;
            }
            return false;
        }
        
        @Override
        public List<User> QueryAll() {
            // TODO Auto-generated method stub
            List<Map<String,Object>> listMap = jdbcTemplate.queryForList("select * from user");
            ArrayList<User> list = new ArrayList<User>();
            for(int i=0;i<listMap.size();i++) {
                User user = new User();
                Map<String, Object> map = listMap.get(i);
                user.setId((int) map.get("id"));
                user.setName((String) map.get("name"));
                user.setGender((String) map.get("gender"));
                list.add(user);
            }
            return list;
        }
        //根据ID查询
        @Override
        public User QueryById(int id) {
            // TODO Auto-generated method stub
            User user = jdbcTemplate.queryForObject("select * from user where id=?", new Object[] {id}, mappUser);
            return user;
        }
    //统计人数
        public int GetCount() {
            Integer count = jdbcTemplate.queryForObject("select count(id) from user", Integer.class);
            return count;
        }
    
    }
    
    //applicationContext.xm文件在src目录下
    
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        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-4.3.xsd">
    
        <!-- 数据源 -->
        <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSources">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://localhost:3306/test0116_spring?characterEncoding=utf-8"></property>
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
        </bean>
        <!-- 将 DataSource 注入Template -->
        <!-- 单独配置JDBCTemplate的bean ,ref是指将数据源注给Template-->
        <bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
            <property name="dataSource" ref="dataSources"></property>
        </bean>
        <!-- ref 引用的是Template的 -->
        <bean class="com.tao.impl.UserDAOImpl" id="UserDAO"> 
            <property name="jdbcTemplate" ref="jdbcTemplate"></property>
        </bean>
        
    </beans>
    
    
    //test 测试类
    
    package com.tao.test;
    
    import java.util.List;
    
    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.tao.impl.UserDAOImpl;
    import com.tao.pojo.User;
    
    public class TestUser {
        UserDAOImpl users ;
        @Before
        public void TestB() {
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            users = context.getBean("UserDAO", UserDAOImpl.class);
        } 
        
        //保存
        @Test
        public void testSave() {
            User user = new User(6, "可可", "男");
            boolean b = users.save(user);
            System.out.println(b);
        }
        
        //更新数据
        @Test
        public void TestUpdate() {
            User user = new User(1, "vv", "女");
            boolean b = users.update(user);
            System.out.println(b);
            
        }
        //根据ID删除数据
        @Test
        public  void TestDelete() {
            boolean b = users.deleteById(6);
            System.out.println(b);
        }
        //根据ID查询数据
        @Test
        public void TestQueryID() {
            User user = users.QueryById(5);
            System.out.println(user);
    
        }
        //查询所有
        @Test
        public void TestQueryAll() {
            List<User> list = users.QueryAll();
            for(User uu:list) {
                System.out.println(uu);
            }
        }
        //统计人数
        @Test
        public void testCount() {
            int count = users.GetCount();
            System.out.println(count);
            
        }
    
    }

    所需jar包如图所示(必须的6个,再加一个 logging,数据库的一个jdbc,事物的一个jdbc,)
     
  • 相关阅读:
    ParallelsDesktop在windows 10虚拟机重启后分辨率无法保存的问题解决方案
    Windows10 2021年5月功能更新(21H1)的三种方式
    Database "mem:XXX" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 解决方案
    Win7/8下提示OpenSCManager failed 拒绝访问 解决方案
    将 Windows 更新代理更新到最新版本
    解决Eclipse中无法直接使用sun.misc.BASE64Encoder及sun.misc.BASE64Decoder的问题
    【Windows】U 盘装系统,无法格式化所选磁盘分区[错误: 0x8004242d]解决方案
    Boot Camp列表-苹果电脑Windows驱动下载
    selenium4 Timeouts is deprecated
    Selenium4实践1——对比Selenium3,Selenium4更新了什么?
  • 原文地址:https://www.cnblogs.com/jili6254/p/8297566.html
Copyright © 2020-2023  润新知