ibatis(mybatis) 学习入门

来源:互联网 发布:epub 知乎 编辑:程序博客网 时间:2024/05/29 19:58

 

简单的测试表:

 

create table User(    userId int(10) primary key auto_increment,    username varchar(20) default null)

 

 

 

实体类:

 

package org.mybatis.jpetstore.domain;import java.io.Serializable;public class User implements Serializable{private static final long serialVersionUID = 1L;private Integer userId;private String username;public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return "User [userId=" + userId + ", username=" + username + "]";}}

 

 

UserMapper.xml:

 

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="org.mybatis.jpetstore.persistence.UserMapper">  <select id="insertUser" parameterType="User">      insert into user(username) values(#{username})  </select>  <select id="deleteUser" parameterType="User">      delete from user  where userId = #{userId}   </select>  <select id="updateUser" parameterType="User">      update user u set u.username = #{username} where u.userId=#{userId}  </select>  <select id="selectUser" resultType="User">      select * from user  </select></mapper>

 

 

UserMapper.java:

 

 

package org.mybatis.jpetstore.persistence;import java.util.List;import javax.annotation.Resource;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.jpetstore.domain.Item;import org.mybatis.jpetstore.domain.User;import org.mybatis.spring.support.SqlSessionDaoSupport;import org.springframework.stereotype.Repository;@Repository("userDao")public class UserMapper extends SqlSessionDaoSupport{public List<Item> getItem() {return getSqlSession().selectList("org.mybatis.jpetstore.persistence.ItemMapper.getAllItems");}public void insert(User user) throws Exception{getSqlSession().insert("org.mybatis.jpetstore.persistence.UserMapper.insertUser",user);}public void delete(User user) throws Exception{getSqlSession().delete("org.mybatis.jpetstore.persistence.UserMapper.deleteUser",user);}public void update(User user) throws Exception{getSqlSession().update("org.mybatis.jpetstore.persistence.UserMapper.updateUser",user);}public List<User> select() throws Exception{return getSqlSession().selectList("org.mybatis.jpetstore.persistence.UserMapper.selectUser");}@Override@Resource(name="sqlSessionFactory")public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {System.out.println(" -----------------   set  sqlSessionFactory  :"+ sqlSessionFactory);super.setSqlSessionFactory(sqlSessionFactory);}}

 

 

applicationContext.xml:

 

<?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:aop="http://www.springframework.org/schema/aop"     xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:jdbc="http://www.springframework.org/schema/jdbc"     xmlns:context="http://www.springframework.org/schema/context"     xsi:schemaLocation="     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean>    <!-- 启动注入功能 -->    <context:annotation-config />    <!-- 启动扫描component功能 -->    <context:component-scan base-package="org.mybatis.jpetstore" />    <!-- 启动注解实物配置功能 -->    <tx:annotation-driven transaction-manager="transactionManager" />   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">     <property name="dataSource" ref="dataSource" />             <!-- 指定UserMapper.xml位置 -->     <property name="mapperLocations" value="classpath*:org/mybatis/jpetstore/persistence/UserMapper.xml" />             <!-- 指定别名 -->     <property name="typeAliasesPackage" value="org.mybatis.jpetstore.domain" /></bean>    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>        <property name="url" value="jdbc:mysql://localhost:3306/test"></property>        <property name="username" value="root"></property>        <property name="password" value="root"></property>    </bean></beans>

 

 

测试类:

 

package com.test.ibatis;import java.util.List;import org.junit.Test;import org.mybatis.jpetstore.domain.User;import org.mybatis.jpetstore.persistence.UserMapper;import org.mybatis.jpetstore.service.UserService;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class HelloWorld {@Testpublic void insert() throws Exception{ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userDao = (UserMapper)context.getBean("userDao");User user = new User();user.setUsername("田超辉");userDao.insert(user);}@Testpublic void delete() throws Exception{ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userDao = (UserMapper)context.getBean("userDao");User user = new User();user.setUserId(1);userDao.delete(user);}@Testpublic void update() throws Exception{ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userDao = (UserMapper)context.getBean("userDao");User user = new User();user.setUserId(2);user.setUsername("改名字");userDao.update(user);}@Testpublic void select() throws Exception{ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userDao = (UserMapper)context.getBean("userDao");List<User> users = userDao.select();for(User u : users){System.out.println(u);}}}

 

 

OK。。。