JavaEE-MyBatis-------------- API使用和环境搭建

在这里插入图片描述
结合API完成环境搭建
1 导入对应的jar包
因为MyBatis是操作数据库的,所以也需要导入数据库对应的包,需要记录日志所以导入了log4j,在控制台做个记录,对于我们学习有帮助,能看到执行过程
在这里插入图片描述
2 创建MyBatis配置文件
在src下创建 mybatis-config.xml

在src下创建 mybatis-config.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="jdbc.properties" />
	<!--  设置别名,然后就可以使用别名来代替前面的路径 -->
	<typeAliases>
		<typeAlias type="com.tledu.zrz.model.User" alias="User"/>
		<typeAlias type="com.tledu.zrz.model.Address" alias="Address"/>
	</typeAliases>
	<!-- 设置环境,development是开发环境 -->
	<environments default="development">
		<environment id="development">
		<!-- 事务管理器,由JDBC实现,靠JDBC提供 -->
			<transactionManager type="JDBC" />
			<!-- 数据源,就是数据库连接池,至于怎么实现的,不需要咱们管 -->
			<dataSource type="POOLED">
			<!-- ${} 在jsp中是EL表达式,这里是OGNL表达式 -->
			<!-- 自动获取jdbc.properties里面的值,设置到连接池中
				name="driver" 这个driver不能更改
				value="${driver}" 这个driver需要和jdbc.properties中一致
			 -->
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<!-- 映射文件 -->
	<mappers>
		<mapper resource="com/tledu/zrz/model/User.xml" />
	</mappers>
</configuration>

3 因为要操作数据库,所以准备示例数据

create table t_user(
	id int(11) primary key auto_increment,
	username varchar(100),
	password varchar(100),
	nickname varchar(100),
	`type` int (2)
);
create table t_address(
	id int(11) primary key auto_increment,
	addr varchar(255),
	phone varchar(100),
	postcode varchar(100),
	user_id int(11),
	CONSTRAINT foreign key (user_id) references t_user(id)
);
insert into t_user(username,password,nickname,type) values('admin','123','超级管理员',1);
insert into t_address(addr,phone,postcode,user_id) values ('123','123','123',1);

4 创建User和Address实体类

public class User {
	private int id;
	private String username;
	private String password;
	private String nickname;
	// 1 是管理员,0是普通用户
	private int type;
	/**
	 * 地址是多,User是一
	 */
private List<Address> addresses;
}

public class Address {
	private int id;
	private String phone;
	private String addr;
	/**
	 * 邮政编码
	 */
	private String postcode;
	/**
	 * 保存User对象,是一个双向关联
	 */
private User user;
}

5 src下创建jdbc.properties配置数据库

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/_08_
username=root
password=root

6 日志文件
log4j.properties 把这个文件放到src下即可,因为我们导入了log4j的包,再加上这个配置文件,就可以在控制台做一些记录说明
7 数据库操作的xml文件
以User为例,Address练习
创建一个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">
  <!-- 
  	namespace 是用于调用的时候的映射
   -->
<mapper namespace="User">
<!-- 
	id : 表示调用的SQL的名字,相当于方法名
	parameterType : 表示传入参数的类型,写类全名,但是由于设置的别名,所以可以写User
	resultType : 结果集类型 
 -->
	<insert id="add" parameterType="User" >
	<!-- 这里的#username 就等于是用 ? 的方式,等方法调用的时候,会传递一个参数,就会自动映射到username的属性上 -->
		insert into t_user (username,password,nickname,type) values (#{username},#{password},#{nickname},#{type})
	</insert>
</mapper>

8 JUnit测试
1 导入对应的JUnit包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JUnit使用

	/**
	 * @Test 对应的方法只能是成员方法,相当于main()方法一样,会被自动调用执行
	 * 
	 * @Before 对应的方法只能是成员方法,在@Test方法执行之前执行
	 * @After 对应的方法只能是成员方法,在@Test方法执行之后执行 
并且 以上两个都是有多少个 @Test 就执行多少次
	 * 
	 * @BeforeClass 对应的方法只能是静态方法,在执行第一个 @Test 之前执行,并且只执行一次,在 @Befor 之前执行
	 * @AfterClass 同上,在最后执行,并在 @After 之后
	 * 
	 * 我们可以把测试代码放到 @Test 中,测试代码需要准备的数据或措施放到 @Before 和 @After 中,比如开始事务和事务提交
	 * 把全局需要的数据和措施放到 @BeforeClass 和 @AfterClass 中 比如创建连接和关闭链接
	 */
	@Before
	public void B() {
		System.out.println("Before");
	}

	@After
	public void A() {
		System.out.println("After");
	}

	@BeforeClass
	public static void BS() {
		System.out.println("BeforeClass");
	}

	@AfterClass
	public static void AS() {
		System.out.println("AfterClass");
}

测试MyBatis

@Test
	public void testAddUser() throws IOException {
		String resource = "mybatis-config.xml";
		// 读取总配置文件
		InputStream inputStream = Resources.getResourceAsStream(resource);
		// 获取session工厂
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		// 获取session
		SqlSession session = sqlSessionFactory.openSession();
		// 调用xml中的sql
		User user = new User();
		user.setUsername("1234");
		user.setPassword("1234");
		user.setNickname("1234");
		user.setType(0);
		// 调用
		session.insert("User.add", user);
		// 提交
		session.commit();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值