mybatis搭建环境

首先,导入jar包

junit一个,mysql一个,mybatis核心jar一个,mybatis依赖jar9个


然后是创建实体类,以及测试类


实体类User.jsva中

package com.hpe.po;

import java.util.Date;

public class User {
	private int id;
	private String username;
	private Date birthday;
	private String sex;
	private String address;
	
	public User() {
		super();
	}
	
	public User(int id, String username, Date birthday, String sex, String address) {
		super();
		this.id = id;
		this.username = username;
		this.birthday = birthday;
		this.sex = sex;
		this.address = address;
	}

	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 Date getBirthday() {
		return birthday;
	}	

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", birthday=" + birthday + ", sex=" + sex + ", address="
				+ address + "]";
	}
	

}

书写核心配置文件SqlMapConfig.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>
	<typeAliases>
		<!-- <typeAlias type="com.hpe.po.User" alias="user" /> 该方式是指定包下的User类别名是user,在使用类映射文件时候,说明参数或者返回类型时候,可以直接使用user -->
		<!-- 批量指定别名 name指定包名,批量创建包下类的别名 ,即所有类的别名都创建, 默认是别名是包下的类名,首字母大小写均可。 -->
		<package name="com.hpe.po" />
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC">
				<!-- 事务管理由jdbc管理 -->
			</transactionManager>
			<!-- 配置数据库连接信息 -->
			<dataSource type="POOLED">
				<!-- 数据库连接池 -->
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/mybatisclass?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="" />
				<!-- 配置连接信息 -->
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- mapper.xml文件的相对路径 ,这里是在src根目录下,如果是在com.po下,则加上com.po.UserMapper.xml -->
		<mapper resource="UserMapper.xml" />
		<!-- mybatis框架需要加载映射文件,将UserMapper.xml添加在SqlMapConfig.xml> -->
	</mappers>
</configuration> 

当然,这里把数据库配置也可以分离出去,写在db.properties文件中,那该核心被指文件需要修改,也需要引入properties文件。

properties文件内容:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatisclass?characterEncoding=utf-8
jdbc.username=root
jdbc.password=

driver:驱动名

url:数据库访问路径

username:登录数据库名

password:登录数据库密码

注意:properties文件中,等号后面的信息,都不带标点,最后他们是要拼接的拼接为:

jdbc:mysql://localhost:3306/mybatisclass?characterEncoding=utf-8&username=root&password=pwd

如此我们在修改SqlMapConfig.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">
		<!-- <property name="driver" value="com.mysql.jdbc.Driver"/> -->
		<!-- 引入db.properties文件,注意路径问题,改文件我是放在src目录下 -->
	</properties>
	<typeAliases>
		<!-- <typeAlias type="com.hpe.po.User" alias="user" /> -->
		<!-- 批量指定别名 name指定包名,批量创建包下类的别名 别名是包下的类名,首字母大小写均可。 -->
		<package name="com.hpe.po" />
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC">

			</transactionManager>
			<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>
		<!-- mapper.xml文件的相对路径 -->
		<mapper resource="UserMapper.xml" />
	</mappers>
</configuration>

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

	<!--select语句  -->
	<select id="selectUserById" parameterType="int" resultType="com.hpe.po.User">
		select * from user where id=#{id}
		<!-- 根据id查询用户 -->
		<!-- id:标识sql语句,statemenid -->
		<!--parameterType: 输入参数,输入映射类型 -->
		<!-- resultType:映射输出结果类型 -->
		<!-- #{id},给占位符赋值 ,如果parameterType是简单数据类型,{}中的内容任意 
			    如果parameterType是对象数据类型,则{}中的值,对应对象的属性,不可随便写。
			 
			 #{}方式与${}方式的区别:
			 #{}为占位符,${}是拼接方式
		-->
	</select>

	<select id="selectUsernameByName" parameterType="String"
		resultType="com.hpe.po.User">

		select * from user where sex='girl' and username
		like'%${value}%'
		<!-- ${}使用拼接方式,相当like'%"+value+%' -->
	</select>
	
	<!-- insert语句 -->
	<insert id="register" parameterType="com.hpe.po.User">
		<!-- order:该句话执行顺序 resultType:执行结果映射类型 keyProperty:查询结果映射到输入参数的那个属性上。 -->
		<!-- 如果在核心配置文件config文件中配置了别名<typeAliases>属性,则直接用别名就行,比如parameterType="user" -->
		<selectKey order="AFTER" resultType="int" keyProperty="id">
		select last_insert_id()<!-- 返回自增后的主键值,并放在keyProperty="id"的id中 -->
		</selectKey>
		insert into user(username, password, sex, realname)
		values(#{username}, #{password}, #{sex}, #{realname})
		<!-- insert语句 -->
	</insert>
	
	<!-- delete语句 -->
	<delete id="delete" parameterType="int">
		<!-- delete,update,insert都不用表明返回值类型,只要说明 parameterType传入类型即可-->
		delete from user where id =
		#{id}
	</delete>
	
	
	<!-- update语句 -->
	<update id="updateBtId" parameterType="user">
		update user set
		username=#{username},sex=#{sex},realname=#{realname} where id=#{id}
	</update>
</mapper>

在src下创建日志文件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

书写测试类:

public class UserTest {
	private SqlSessionFactory factory;
	@Before
	public void setUp() throws IOException{
		InputStream inputStream=Resources.getResourceAsStream("SqlMapConfig.xml");
		factory =new SqlSessionFactoryBuilder().build(inputStream);
	}
	
	//@Test是为单元测试添加注解,使用junit
	@Test
	public void testSelctUsrByNAme() throws IOException{
		//读取配置文件
		SqlSession session=factory.openSession();
		//selectone查询单条
		//statementid--》namespace+statementid
		//
		System.out.println();//syso
		List<User> list=session.selectList("user.selectUsernameByName","三");
		System.out.println(list);
		//session.commit():在增删改时候提交事务,不然数据库不会更改
		session.close();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值