Spring的sql操作

xml配置jdbc

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
       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
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/aop
                           http://www.springframework.org/schema/aop/spring-aop.xsd">
    <context:component-scan base-package="com.sy"/>
    <!--
        配置数据源
    -->
    <bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL"></property>
        <property name="username" value="scott"></property>
        <property name="password" value="tiger"></property>
    </bean>
    <!--
        配置SpringJdbc
    -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="ds"></property>
    </bean>

    <bean id="namedJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg name="dataSource" ref="ds"></constructor-arg>
    </bean>
</beans>

sql操作

 public void test01() {
        System.out.println(jdbcTemplate.queryForList("select * from emp"));
    }
public void test02() {
        //不带参数的列表查询
        List<Emp> emps = jdbcTemplate.query("select * from emp", new BeanPropertyRowMapper<>(Emp.class));
        System.out.println(emps);
    }
  public void test03() {
        //带参数的列表查询
        // List<Emp> emps=jdbcTemplate.query("select * from emp where empno=? and ename=?",new Object[]{7369,"SMITH"} ,new BeanPropertyRowMapper<>(Emp.class));
        List<Emp> emps = jdbcTemplate.query("select * from emp where empno=? and ename=?", new BeanPropertyRowMapper<>(Emp.class), 7369, "SMITH");
        for (Emp emp : emps) {
            System.out.println(emp.getEname() + "\t" + emp.getJob());
        }
    }
 public void test04() {
        //查询单个对象
        //注意:如果单个对象没有找到,会出现异常
        //如果大于1条也是错误的
        Emp emp = jdbcTemplate.queryForObject("select * from emp where empno=?", new BeanPropertyRowMapper<>(Emp.class), 7369);
        System.out.println(emp);

        int count = jdbcTemplate.queryForObject("select count(*) from emp", Integer.class);
        System.out.println(count);
    }
 public void test05() {
        //查询某列的所有值
        List<String> enames = jdbcTemplate.queryForList("select ename from emp where empno>?", String.class, 7500);
        System.out.println(enames);
    }
 public void test06() {
        //DML操作,返回受影响的行数
        int rows = jdbcTemplate.update("insert into dept(dname,loc) values(?,?)", "研发", "苏州");
        System.out.println(rows);

    }
 public void test07() {
        KeyHolder keyHolder = new GeneratedKeyHolder();
        //返回自动递增主键
        int rows = jdbcTemplate.update((con) -> {
            PreparedStatement ps = con.prepareStatement("insert into dept(dname,loc) values(?,?)", new String[]{"empno"});
            ps.setString(1, "研发");
            ps.setString(2, "苏州");
            return ps;
        }, keyHolder);
        System.out.println(rows);
        System.out.println(keyHolder.getKey().intValue());

    }
 public void test08() {
        //根据部门编号查询员工信息
        //部门编号可能是10,
        //10,20
        //10,20,30

        Map<String, Object> map = new HashMap<>();
        map.put("deptnolist", Arrays.asList(20, 30));
        map.put("sal", 1600);
        List<Emp> emps = namedParameterJdbcTemplate.query("select * from emp where deptno in(:deptnolist) and sal>:sal", map, new BeanPropertyRowMapper<>(Emp.class));
        System.out.println(emps);


    }
//分页模糊查询
  public List<Sports> query(String likeStr, int page, int pageSize) {
        String sql = "select * from(select rownum r ,g.* from(select *from SPORTS where SPONAME like ? order by ap_time desc ) g )where r>? and r<=?";
        RowMapper<Sports> sports = new BeanPropertyRowMapper<Sports>(Sports.class);
        List<Sports> list = jdbcTemplate.query(sql, sports, new Object[]{"%" + likeStr + "%", (page - 1) * pageSize, page * pageSize});
        System.out.println(list);
        return list;

    }
//查询逻辑序列
 public int querySeq() {
//        测试
//        int count =jdbcTemplate.queryForObject("select SPORTS_ID_SQE.nextval from dual",Integer.class);
//        System.out.println(count);
        return jdbcTemplate.queryForObject("select SPORTS_ID_SQE.nextval from dual", Integer.class);
    }
//单个对象模糊查询
 public int queryCount(String likeStr) {
        String sql = "select count(*) from SPORTS where SPONAME like ?";
        return jdbcTemplate.queryForObject(sql, Integer.class, "%" + likeStr + "%");
    }
//插入对象,Spring自动映射属性
 public int insert(Sports sports) {
        java.sql.Date date=new java.sql.Date(sports.getBg_time().getTime());
        String sql = "insert into SPORTS(SPORTS_ID,SPONAME ,STUNAME ,DEPART ,STUSEX ,STUAGE ,BG_TIME ,AP_TIME,PHONE) values(?,?,?,?,?,?,?,sysdate,?)";
        return jdbcTemplate.update(sql,sports.getSports_id(),sports.getSponame(),sports.getStuname(),sports.getDepart(),sports.getStusex(),sports.getStuage()
        ,date,sports.getPhone());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值