发表于: 2019-10-27 22:54:09

1 1004


今天完成的事情:


重新写了一遍

jdbctemplate连接数据库


文件结构  没有新建包去逐个分层   

都放在一起了


依赖pom .xml

applicationContext.xml文件

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="username" value="root"></property>
       <property name="password" value="451976"></property>
       <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
       <property name="Url" value="jdbc:mysql://localhost:3306/student?serverTimezone=UTC"></property>
   </bean>
   <!--设置一个名为jdbcTemplatebean,   引入(refdataSource-->
   <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
       <property name="dataSource" ref="dataSource"></property>
   </bean>
</beans>

实体类 Student.class   省略set/get

接口 StudentDao

package com.ptteng;

public interface StudentDao {
public void add();

   public void addmore();

   public void delete();

   public void selectId();

   public void selectAll();

   public void update();

}

MyRowMapper.class文件        jdbctemplate查询时需要调用

public class MyRowMapper implements RowMapper<Student> {

public Student mapRow(ResultSet resultSet, int i) throws SQLException {
//获取结果集中的数据
       int id = resultSet.getInt("id");
       String name = resultSet.getString("name");
       int qq = resultSet.getInt("qq");
       String type = resultSet.getString("type");
       String time = resultSet.getString("time");
       int stunum = resultSet.getInt("stunum");
       String daily = resultSet.getString("daily");
       String wish = resultSet.getString("wish");
       String senior = resultSet.getString("senior");
       //把数据封装成 s 对象
       Student s = new Student();
       s.setId(id);
       s.setName(name);
       s.setqq(qq);
       s.setType(type);
       s.settime(time);
       s.setStunum(stunum);
       s.setdaily(daily);
       s.setWish(wish);
       s.setsenior(senior);
       return s;
   }
}

实现接口StudentImpl.class

public class StudentDaoImpl implements StudentDao {

//获取配置文件xml
   ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
   //读取applicationcontext.xml   idjdbctemplatebean文件
   JdbcTemplate jdbcTemplate = (JdbcTemplate) app.getBean("jdbcTemplate");

   //增加单个
   @Override
   public void add() {
       String sql = "insert into bj (name,qq,type,time,stunum,daily,wish,senior) values (?,?,?,?,?,?,?,?)";
       jdbcTemplate.update(sql, "夏雪", 454577, "后端", "201933", 1502, "1502/daily", "成为程序员", "夏冰雹");
   }
//批量增加
   @Override
   public void addmore(){
       String sql = "insert into bj (name,qq,type,time,stunum,daily,wish,senior) values (?,?,?,?,?,?,?,?)";
       List<Object[]>  batchadd  = new ArrayList<>();
       batchadd.add(new Object[]{"张三",5455555,"前端","88",001,"001/daily","成为合格的员工","刘三三"});
       batchadd.add(new Object[]{"李四",54511555,"后端","81",002,"002/daily","成为合格的程序员","马三三"});
       jdbcTemplate.batchUpdate(sql,batchadd);
   }
//单个删除
   @Override
   public void delete() {
       String sql = "delete from bj where id=?";
       jdbcTemplate.update(sql,10);
   }

//根据id查询

/ / 新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回Student对象

   @Override
   public void selectId() {
           String sql = "select * from bj where id =? ";
           Student s = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "2");
           System.out.println(s);
       }

//查询所有

/ / 新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回Student对象

    @Override
   public void selectAll(){
       String sql = "select * from bj";
       List<Student> list = jdbcTemplate.query(sql, new MyRowMapper());
       System.out.println(list);
   }
//单个更改
   @Override
   public void update() {
       String  sql = "update bj set type= ? where id =?";
       jdbcTemplate.update(sql,"人类行为研究学",8);
   }
}


工具类 StudentUtil     

里面放了连接数据库的方法,但没用

public  class StudentUtil {

private ApplicationContext app = null;
        private JdbcTemplate jt = null;

   {
app = new ClassPathXmlApplicationContext("ApplicationContext.xml");
      jt = (JdbcTemplate) app.getBean("jdbcTemplate");
   }
}



明天计划的事情:

继续推进


遇到的问题:

RowMapper.class文件   是配合springjdbc查询使用的


虽然照着教程写出来了  

但只是知道它调用了spring的RowMapper方法

照着教程写出来了    但并不懂其原理    



收获:


对比昨天写的jdbc  

感觉jdbctemplate的好处是   

配置文件写完后      开启连接简单  而且不需要去主动关闭

方便了很多



返回列表 返回列表
评论

    分享到