• Spring 中的 JDBCTemplate


     新建一个java工程 写好spring配置文件,直接上代码

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd xsi:schemaLocation=”http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- 加载配置文件 -->
    
        <context:property-placeholder location="db.properties"></context:property-placeholder>
        
        <!-- 导入C3P0数据源 -->
        
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${jdbc.Username}"></property>
            <property name="password" value="${jdbc.password}"></property>
            <property name="jdbcUrl" value="${jdbc.Url}"></property>
            <property name="driverClass" value="${jdbc.Driver}"></property>
        </bean>
        
        <!-- 配置Spring JdbcTemplate -->
        <bean id="JdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        
        
    </beans>

    不知道什么意思可以看上面的注解,

    接下来我们写好我们数据库的基本配置文件

    jdbc.Driver=com.mysql.jdbc.Driver
    jdbc.Username=root
    jdbc.password=root
    jdbc.Url=JDBC:mysql://127.0.0.1:3306/mydata

    这里的话是配合上面c3p0数据库使用的,以便可以成功读取到数据库。

    接下来我们再写一个实体类,后面用到查询数据的时候会用到实体类。

    package com.xiaojiang.template;
    
    public class MyJDBCData {
        
        private int id;
        private String name;
        private int age;
        private String sex;
        
        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 int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        @Override
        public String toString() {
            return "MyJDBCData [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + "]";
        }
        
    
    }

    数据库和数据表自己去新建,然后再根据自己创建的字段名来写这个实体类。

    接下来我们上测试代码

    package com.xiaojiang.template;
    
    import static org.junit.jupiter.api.Assertions.*;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.jupiter.api.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.RowMapper;
    
    class jdbcTest {
        
        private String sql []  = {
                "insert into attributes(id,name,age,sex) values(?,?,?,?)",
                "update attributes set name = ?  where id = ?",
                "delete from attributes where id = ?",
                "select *from attributes where id = ?",
                "select *from attributes where id >= ?",
                "select count(id) attributes from attributes"
                };
        
        private  ApplicationContext ac = null;
        private  JdbcTemplate p = null;
        
        {
            ac = new ClassPathXmlApplicationContext("applicationContext.xml");
            p = (JdbcTemplate) ac.getBean("JdbcTemplate");
        }
        
        //查询多条数据
        @Test
        public void testQueryForList()
        {
            RowMapper<MyJDBCData> rowMapper = new BeanPropertyRowMapper<>(MyJDBCData.class);
            List<MyJDBCData> data = p.query(sql[4], rowMapper,1);
            System.out.println(data);
        }
        
        //获取数据库指定的数据,并得到一个对象
        @Test
        public void testQueryForObject()
        {
            //把查询结果转换成一个实体
            RowMapper<MyJDBCData> rowMapper = new BeanPropertyRowMapper<>(MyJDBCData.class);
            MyJDBCData data = p.queryForObject(sql[3],rowMapper,1);
            System.out.println(data.toString());
        }
        
        //批量增加数据
        @Test 
        public void testbatchData()
        {
            List<Object[]> batchArgs = new ArrayList<>();
            batchArgs.add(new Object[]{"1","测试1","18","男"});
            batchArgs.add(new Object[]{"2","测试2","19","男"});
            batchArgs.add(new Object[] {"3","测试3","20","女"});
            p.batchUpdate(sql[0], batchArgs);
        }
        //查询单个列的值,做统计查询
        @Test
        public void testQueryForObject1()
        {
            Long count = p.queryForObject(sql[5],Long.class);
            System.out.println(count);
        }
        
        //执行单条 INSERT UPDATE DELETE
        @Test 
        public void testInsert()
        {
            p.update(sql[0],"1","小江","18","男");
        }
        //修改
        @Test
        public void testUpdate()
        {
            p.update(sql[1],"小红",1);
        }
        //删除
        @Test
        public void testDelete()
        {
            p.update(sql[2],1);
        }
    
        @Test
        void test() {
            fail("Not yet implemented");
        }
    
    }

    我们在用的时候最好把他写成一个类,要用到谁的时候就去调用就行了,我这里只是测试一下,就不多写了,写的简单不喜勿喷。

  • 相关阅读:
    js对象,字符串 互相 转换
    JS 比较两个数组是否相等 是否拥有相同元素
    node 中 安装 yarn
    vue2.0 子组件 父组件之间的传值
    卷积神经网络 使用 Python 实现一个对手写数字进行分类的简单网络
    Tensorflow卷积实现原理+手写python代码实现卷积
    深度学习基础 (十五)--padding,卷积步长与简单卷积神经网络示例
    直白介绍卷积神经网络(CNN)
    直观理解深度学习卷积部分
    理解深度学习中的卷积
  • 原文地址:https://www.cnblogs.com/c-c-c-c/p/9352342.html
Copyright © 2020-2023  润新知