mybatis 环境搭建和简单CRUD

mybatis简单环境搭建,新手入门使用

1、引入mybatis所需jar包


2、mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"  
	"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 这个为没有与其他框架进行整合的配置方式,与其他框架整合后配置方式不同 -->
	<environments default="development">
		<environment id="development">
			<!-- 使用JDBC事务管理 -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=gbk"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>
</configuration>
3、pojo

package model;

import java.util.Date;

public class User {
	private Integer id;
	private String userName;
	private Date birthday;
	private String sex;
	private String address;
	public Integer getId() {
		return id;
	}
	public void setId(Integer 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 + "]";
	}
	
}
4、mapper配置文件
<?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">
	
<!-- 命名空间一般与pojo同名 -->
<mapper namespace="User">
	<!-- 
	查询用户
	如果参数是简单类型#{}的值可以是任意
	resultType查询出的单条记录的类型
	 -->
	 
	<select id="findUserById" parameterType="int" resultType="model.User">
		select * from users where id = #{value}
	</select>
	
	<!-- 模糊查询 -->
	<!--${}表示拼接字符串,会有sql注入问题 如果参数是简单类型值只能为value -->
	<select id="findUserByName" parameterType="java.lang.String" resultType="model.User">
		select id,username,birthday,sex,address from test.users where username like '%${value}%'
	</select>
	
	<!-- 插入用户 -->
	<insert id="insert" parameterType="model.User">
		<!--将插入的数据的主键返回到插入的数据中,只对自增主键有用  -->
		<selectKey keyProperty="id" resultType="int" order="AFTER">
			SELECT LAST_INSERT_ID()
		</selectKey>
		
		<!-- 通过uuid()生成主键时返回主键的方法,oriclede sequence生成主键也这样返回
	<insert id="insert" parameterType="model.User">
		<selectKey keyProperty="id" order="BEFORE" resultType="string">
			select uuid()
		</selectKey>
		insert into users(id,userName,birthday,sex,address) values(#{id},#{userName},#{birthday},#{sex},#{address})
	</insert>
	 -->
		insert into users(userName,birthday,sex,address) values(#{userName},#{birthday},#{sex},#{address})
	</insert>
	
	<!-- 更新用户 -->
	<update id="updateuserById" parameterType="model.User">
		update users set username=#{userName},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
	</update>
	<!--删除用户  -->
	<delete id="deleteUserById" parameterType="int">
		delete from users where id=#{value}
	</delete>
	
</mapper>
5、mappre配置完后需要加到mybatis配置文件中

<pre name="code" class="html">	<mappers>
		<!-- 注意文件位置 -->
		<mapper resource="mapper/User.xml"/>
	</mappers>


 


6、test类

@Test
	public void findUserById() throws IOException{
		//sqlMapConfig的位置和名称
		String resource = "sqlMapConfig.xml";
		//获取sqlMapConfig配置文件留
		InputStream inputstream = Resources.getResourceAsStream(resource);
		//获得SqlSessionFactory工厂
		SqlSessionFactory factory =new  SqlSessionFactoryBuilder().build(inputstream);
		//同过工厂获得sqlsession
		SqlSession sqlSession = factory.openSession();
		User user = (User)sqlSession.selectOne("User.findUserById",1);
		sqlSession.close();
		//System.out.println(user.toString());
	}
	
	@Test
	public void findUserByName() throws IOException{
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session  = factory.openSession();
		List<Object> users = session.selectList("User.findUserByName", "张三");
		session.close();
		System.out.println(users);
		
	}
	
	@Test
	public void insert() throws IOException{
		User user = new User();
		user.setUserName("张三");
		user.setSex("女");
		user.setAddress("白金");
		user.setBirthday(new Date());
		
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session  = factory.openSession();
		session.insert("User.insert", user);
		session.commit();
		session.close();
		System.out.println(user);
	}
	
	@Test
	public void updateuserById() throws IOException{
		
		User user = new User();
		user.setUserName("李四");
		user.setSex("男");
		user.setAddress("上海");
		user.setBirthday(new Date());
		user.setId(3);
		
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session  = factory.openSession();
		session.update("User.updateuserById", user);
		session.commit();
		session.close();
	}
	
	@Test
	public void deleteUserById() throws IOException{
		String resource = "sqlMapConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource);
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session  = factory.openSession();
		session.update("User.deleteUserById",5);
		session.commit();
		session.close();
	}
为了方便查看执行的sql一般还需要配置log4j

log4j.rootLogger=DEBUG,CONSOLE
log4j.addivity.org.apache=false

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r [%t] %-5p  %x - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=gbk
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值