二、创建项目导入Jar包

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

一、创建数据库表1.1、创建表

USE`mybatis`;/*Table structure for table `user`*/DROPTABLEIFEXISTS`user`;CREATETABLE`user` (

`id`int(11)NOTNULLAUTO_INCREMENT COMMENT'用户ID',

`name`varchar(45)NOTNULLDEFAULT'无名氏'COMMENT'用户名',

`age`tinyint(3)NOTNULLDEFAULT'21'COMMENT'用户年龄',

`birthday`datetimeNOTNULLDEFAULT'1970-01-01 00:00:00'COMMENT'用户生日',

`address`varchar(256)NOTNULLDEFAULT'北京'COMMENT'用户地址',PRIMARYKEY(`id`)

) ENGINE=InnoDB AUTO_INCREMENT=18DEFAULTCHARSET=utf8 COMMENT='用户表';/*Data for the table `user`*/insertinto`user`(`id`,`name`,`age`,`birthday`,`address`)values(1,'赵敏',23,'1990-01-23 20:24:21','明教'),

(2,'李四',18,'1986-12-23 12:13:11','广州'),

(3,'张五',33,'1975-09-23 02:13:11','上海'),

(4,'王六',27,'1984-11-01 11:23:14','重庆'),

(5,'张三丰',108,'1971-01-02 02:12:11','武当'),

(6,'想起 来叫什么了',22,'1984-01-23 20:23:22','魔都上海'),

(7,'呵呵',22,'1984-01-23 20:23:22','不知道是哪的'),

(8,'张无忌',18,'2015-10-28 15:31:31','明教');

二、创建项目导入Jar包2.1、

三、创建实现类和Mybatis各个配置文件

3.1、创建pojo类

/***/packagecom.pb.mybatis.po;importjava.util.Date;/*** @Title: User.java

* @Package com.pb.mybatis.po

* @ClassName User

* @Description: TODO(用户类)

*@author刘楠

* @date 2015-10-30 下午4:27:05

*@versionV1.0*/publicclassUser {//用户IDprivateintid;//用户名privateString name;//用户年龄privateintage;//生日privateDate birthday;//地址privateString address;/***@returnthe id*/publicintgetId() {returnid;

}/***@paramid the id to set*/publicvoidsetId(intid) {this.id =id;

}/***@returnthe name*/publicString getName() {returnname;

}/***@paramname the name to set*/publicvoidsetName(String name) {this.name =name;

}/***@returnthe age*/publicintgetAge() {returnage;

}/***@paramage the age to set*/publicvoidsetAge(intage) {this.age =age;

}/***@returnthe birthday*/publicDate getBirthday() {returnbirthday;

}/***@parambirthday the birthday to set*/publicvoidsetBirthday(Date birthday) {this.birthday =birthday;

}/***@returnthe address*/publicString getAddress() {returnaddress;

}/***@paramaddress the address to set*/publicvoidsetAddress(String address) {this.address =address;

}/**(non Javadoc)

* <p>Title: toString</p>

* <p>Description: </p>

*@return*@seejava.lang.Object#toString()*/@OverridepublicString toString() {return"User [id=" + id + ", name=" + name + ", age=" +age+ ", birthday=" + birthday + ", address=" + address + "]";

}

}

3.2、创建db.properties

#数据库基本配置信息

#驱动

jdbc.driver=com.MySQL.jdbc.Driver

#连接URL

jdbc.url=jdbc:mysql://localhost:3306/mybatis?CharacterEncoding=utf8#用户名

jdbc.username=root

#密码

jdbc.passWord=root

log4j

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# MyBatis logging configuration...

# Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3.3、创建UserMapper与mapper.xml

/***/packagecom.pb.mybatis.mapper;importjava.util.List;importorg.apache.ibatis.annotations.Param;importcom.pb.mybatis.po.User;/*** @Title: UserMapper.java

* @Package com.pb.mybatis.mapper

* @ClassName UserMapper

* @Description: TODO(用户类数据访问层Mapper接口)

*@author刘楠

* @date 2015-10-30 下午6:17:43

*@versionV1.0*/publicinterfaceUserMapper {publicUser findUserById(intid);/***

* @Title: findUserByWhere

* @Description: TODO(根据条件查询用户)

*@returnList<User>*/publicList<User> findUserByWhere(@Param("id")intid,@Param("name")String username);/***

* @Title: updateUser

* @Description: TODO(修改)

*@paramuser

*@returnint*/publicintupdateUser(User user);

}

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="com.pb.mybatis.mapper.UserMapper">

<!-- 映射 -->

<resultMap type="User" id="userResultMap">

<id property="id" column="id"/>

<result property="name" column="name"/>

<result property="age" column="age"/>

<result property="birthday" column="birthday"/>

<result property="address" column="address"/>

</resultMap>

<select id="findUserById" parameterType="int" resultMap="userResultMap">select* from user where id=#{id}</select>

<!-- 根据条件查询用户 -->

<select id="findUserByWhere" resultMap="userResultMap">select*from user<where>

<!--where会自动去掉第一个成功的条件的and和or -->

<iftest="id!=null and id!='' and id!=0">and id=#{id}</if>

<iftest="name!=null and name!=''">or name like"%"#{name}"%"

</if>

</where>

</select>

<!--修改

SET NAME=#{name},

age=#{age},

birthday=#{birthday},

address=#{address}-->

<update id="updateUser" parameterType="User">UPDATE USER<!--使用SET来更新 -->

<set>

<iftest="name !=null and name !=''">NAME=#{name},</if>

<iftest="age !=null and age !='' and age !=0">age=#{age},</if>

<iftest="birthday !=null">birthday=#{birthday},</if>

<iftest="address !=null and address !=''">address=#{address}</if>

</set>WHERE id=#{id}</update>

</mapper>

3.4、创建configuration.xml

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

<!DOCTYPE configuration

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<properties resource="db.properties" />

<typeAliases>

<!--使用默认别名 -->

<packagename="com.pb.mybatis.po"/>

</typeAliases>

<environmentsdefault="development">

<environment id="development">

<transactionManager type="JDBC"/>

<dataSource type="POOLED">

<property name="driver" value="${jdbc.driver}"/>

<property name="url" value="${jdbc.url}"/>

<property name="username" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

</dataSource>

</environment>

</environments>

<mappers>

<!-- 加载映射 -->

<packagename="com.pb.mybatis.mapper"/>

</mappers>

</configuration>

3.5、测试

/***/packagecom.pb.mybatis.mapper;importstaticorg.junit.Assert.*;importjava.io.InputStream;importjava.util.Date;importjava.util.List;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importorg.junit.Before;importorg.junit.Test;importcom.pb.mybatis.po.User;/*** @Title: UserMapperTest.java

* @Package com.pb.mybatis.mapper

* @ClassName UserMapperTest

* @Description: TODO(用一句话描述该文件做什么)

*@author刘楠

* @date 2015-10-30 下午6:25:23

*@versionV1.0*/publicclassUserMapperTest {privateSqlSessionFactory sqlSessionFactory;/***

* @Title: setUp

* @Description: TODO(在每个方法前执行的方法)

*@throwsException void*/@BeforepublicvoidsetUp()throwsException {

String resource="configuration.xml";

InputStream in=Resources.getResourceAsStream(resource);//获取会话工厂sqlSessionFactory=newSqlSessionFactoryBuilder().build(in);

}

@TestpublicvoidtestFindUserById() {//获取会话SqlSession sqlSession=sqlSessionFactory.openSession();

UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

User user=userMapper.findUserById(1);

System.out.println(user);

}

@TestpublicvoidtestFindUserByWhere() {//获取会话SqlSession sqlSession=sqlSessionFactory.openSession();

UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

List<User> list=userMapper.findUserByWhere(0,"");

System.out.println(list);

}

@TestpublicvoidtestUpdateUser() {//获取会话SqlSession sqlSession=sqlSessionFactory.openSession();

UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

User user=userMapper.findUserById(6);

System.out.println(user);

user.setBirthday(newDate());

user.setName("sssss");

user.setAddress("ddd");intnum=userMapper.updateUser(user);

sqlSession.commit();

System.out.println("num="+num);

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航