1、建好数据库,如图:
总的:
表items:
表orderdetail:
表orders:
表user::
2、在前天配置好maven后,在eclipse中新建一个maven项目。
3、加入用到的包,在pom.xml的<dependencies>标签中配
<dependencies>
<!-- mybatis核心库 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!-- junit -->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- log4j -->
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- mysql -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
4、配log4j.properties和SqlMapConfig.xml
在src/main/resources下添加log4j.properties文件和SqlMapConfig.xml。
log4j.properties如下:
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# 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
SqlMapConfig.xml如下:(记得要修改数据库登录的账号username密码password)
<?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>
<environments default="development">
<environment id="development">
<!-- 配置jdbc的实现 -->
<transactionManager type="JDBC"/>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="5266"/>
</dataSource>
</environment>
</environments>
<!-- 加载map的映射文件 -->
<mappers>
<!-- 加载User类的映射文件User.xml -->
<mapper resource="com/lanqiao/po/User.xml"/>
</mappers>
</configuration>
5、建po类(bean)
在src/main/java下建一个包,包里建一个po类User.java,即建一个普通的JavaBean。
User.java如下:
package com.lanqiao.po;
import java.util.Date;
public class User {
private int id;
private String username;//姓名
private String sex;//性别
private Date birthday;//生日
private String address;//地址
public User(int id, String username, String sex, Date birthday,
String address) {
super();
this.id = id;
this.username = username;
this.sex = sex;
this.birthday = birthday;
this.address = address;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
6、建po类的映射文件
注明:持久化=po类+po类的映射文件(xml)。注意:po的.java文件和.xml文件名字要一样。
在src/main/java建的包下建立一个同名的User映射文件,User.xml。
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">
<!-- 持久化=po类+po类的映射文件(xml)。注意:po的.java文件和.xml文件名字要一样 -->
<mapper namespace="test">
<!-- 数据库增删改查操作:select,insert,delete,update等标签 -->
<!-- 这里只做查询操作
id:对应的是方法名
parameterType:对应方法中参数的类型,如int,String等
resultType:方法返回的类型
-->
<select id="" parameterType="" resultType="">
select * from user where id=#{id}
</select>
</mapper>
加载User.xml需要在SqlMapConfig.xml中的<mappers>标签说明,如图:
7、在src/test/java下建一个测试类UserTest.java
UserTest.java代码如下:
package com.lanqiao.test;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.lanqiao.po.User;
//测试用户对象
public class UserTest {
public static void main(String[] args) {
try {
//1、加载SqlMapConfig.xml文件
String resources="SqlMapConfig.xml";
//工厂对象
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resources));
System.out.println("sqlSessionFactory:"+sqlSessionFactory);
//2、获取sqlSession对象
SqlSession sqlSession=sqlSessionFactory.openSession();
//sqlSession.selectOne(空间名.id名,数据库中相应要查找的id);空间名和id名在User.xml文件中的namespace和id
User user=sqlSession.selectOne("test.findUserById", 10);
System.out.println(user.getUsername());
//关闭sqlSession
sqlSession.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
8、测试结果
在数据库中查找到id=10的用户名是张三。符合。