课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > Java培训:使用Jdbc Template的基本操作
  • Java培训:使用Jdbc Template的基本操作

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-24

  • 昆明达内Java培训的老师今天给大家讲使用Jdbc Template的基本操作步骤。

    1.appliactionContext.xml配置

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:p="http://www.springframework.org/schema/p"

    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.xsd">

    <!--数据源的配置-->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

    <property name="url" value="jdbc:mysql:///spring"></property>

    <property name="username" value="root"></property>

    <property name="password" value=""></property>

    </bean>

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

    <property ame="dataSource" ref="dataSource"></property>

    </bean>

    <bean id="userDao" class="cn.happy.impl.UserDAOImpl">

    <property ame="jdbcTemplate" ref="jdbcTemplate"></property>

    </bean>

    </beans>

    2.接口:IUserDAO.java

    public interface IUserDAO {

    public void addUser(User user);

    public void deleteUser(int id);

    public void updateUser(User user);

    public String searchUserName(int id);

    public User searchUser(int id);

    public List<User> findAll();

    }

    3.接口实现类:UserDAOImpl.java

    Spring提供了JdbcDaoSupport支持类,所有DAO继承这个类,就会自动获得JdbcTemplate(前提是注入DataSource)。

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

    <property ame="dataSource" ref="dataSource"></property>

    </bean>

    <bean id="userDao" class="cn.happy.impl.UserDAOImpl">

    <property ame="jdbcTemplate" ref="jdbcTemplate"></property>

    </bean>

    JdbcTemplate主要提供下列方法:

    1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

    2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

    3、query方法及queryForXXX方法:用于执行查询相关语句;

    4、call方法:用于执行存储过程、函数相关语句。

    public class UserDAOImpl extends JdbcDaoSupport implements IUserDAO {

    public void addUser(User user) {

    String sql = "insert into user values(?,?,?)";

    this.getJdbcTemplate().update(sql, user.getId(), user.getUsername(),

    user.getPassword());

    }

    public void deleteUser(int id) {

    String sql = "delete from user where id=?";

    this.getJdbcTemplate().update(sql, id);

    }

    public void updateUser(User user) {

    String sql = "update user set username=?,password=? where id=?";

    this.getJdbcTemplate().update(sql, user.getUsername(),

    user.getPassword(), user.getId());

    }

    public String searchUserName(int id) {//简单查询,按照ID查询,返回字符串

    String sql = "select username from user where id=?";

    //返回类型为String(String.class)

    return this.getJdbcTemplate().queryForObject(sql, String.class, id);

    }

    public List<User> findAll() {//复杂查询返回List集合

    String sql = "select * from user";

    return this.getJdbcTemplate().query(sql, new UserRowMapper());

    }

    public User searchUser(int id) {

    String sql="select * from user where id=?";

    return this.getJdbcTemplate().queryForObject(sql, new UserRowMapper(), id);

    }

    class UserRowMapper implements RowMapper<User> {

    //rs为返回结果集,以每行为单位封装着

    public User mapRow(ResultSet rs, int rowNum) throws SQLException {

    User user = new User();

    user.setId(rs.getInt("id"));

    user.setUsername(rs.getString("username"));

    user.setPassword(rs.getString("password"));

    return user;

    }

    }

    }

    4.测试类:UserTest.java

    public class UserTest {

    @Test//增

    public void demo1(){

    User user=new User();

    user.setId(3);

    user.setUsername("admin");

    user.setPassword("123456");

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    dao.addUser(user);

    }

    @Test//改

    public void demo2(){

    User user=new User();

    user.setId(1);

    user.setUsername("admin");

    user.setPassword("admin");

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    dao.updateUser(user);

    }

    @Test//删

    public void demo3(){

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    dao.deleteUser(3);

    }

    @Test//查(简单查询,返回字符串)

    public void demo4(){

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    String name=dao.searchUserName(1);

    System.out.println(name);

    }

    @Test//查(简单查询,返回对象)

    public void demo5(){

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    User user=dao.searchUser(1);

    System.out.println(user.getUsername());

    }

    @Test//查(复杂查询,返回对象集合)

    public void demo6(){

    ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

    IUserDAO dao=(IUserDAO) applicationContext.getBean("userDao");

    List<User> users=dao.findAll();

    System.out.println(users.size());

    }

    }

    昆明达内Java培训的老师今天讲的这些知识点就讲完了,记得回去好好复习。

    推荐文章

上一篇:java线程的Interrupt、setDaemon()、join

下一篇:Java中如何使用嵌入MySQL

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56