10023---myBatis--CRUD操作

定义sql映射xml文件:userMapper.xml

<insert id="insertUser" parameterType="com.xxx.bean.User">
	insert into users(name, age) values(#{name}, #{age});
</insert>
<delete id="deleteUser" parameterType="int">
	delete from users where id=#{id}
</delete>
<update id="updateUser" parameterType="com.xxx.bean.User">
	update users set name=#{name},age=#{age} where id=#{id}
</update>
<select id="selectUser" parameterType="int" resultType="com.xxx.bean.User">
	select * from users where id=#{id}
</select>
<select id="selectAllUsers" resultType="com.xxx.bean.User">
	select * from users
</select>

在config.xml中注册这个映射文件

<mapper resource=" com/xxx/bean/userMapper.xml"/>

在dao中调用:

@Test
public void getAllTest() throws IOException {
	SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
	String statement = "com.xxx.userMapper.getAllUsers";
	List<User> arrList = session.selectList(statement);
	session.close();
	System.out.println(arrList);
}

@Test
public void deleteTest() throws IOException {
	SqlSession session = MyBatisUtil.getSessionFactory().openSession(true);
	String statement = "com.xxx.userMapper.deleteUser";
	int result = session.delete(statement, 4);
	session.close();
	System.out.println(result);
}

@Test
public void updateTest() throws IOException {
	SqlSession session = MyBatisUtil.getSessionFactory().openSession();
	String statement = "com.cbgd.userMapper.updateUser";
	int result = session.update(statement, new User(4, "Jacking", 37));
	session.commit();
	session.close();
	System.out.println(result);
}

@Test
public void insertTest() throws IOException {
	SqlSession session = MyBatisUtil.getSessionFactory().openSession();
	String statement = "com.cbgd.userMapper.insertUser";
	int result = session.insert(statement, new User(-1, "jjb", 36));
	session.commit();
	session.close();
	System.out.println(result);
}

MyBatisUtil.java

public class MyBatisUtil {
	
	public static SqlSessionFactory getSessionFactory() throws IOException {
		String resource = "conf.xml";
		//加载mybatis的配置文件(它也加载关联的映射文件)
		Reader reader = Resources.getResourceAsReader(resource); 
		//构建sqlSession的工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		//创建能执行映射文件中sql的sqlSession
		
		return sessionFactory;
	}
}

几个可以优化的地方

连接数据库的配置单独放在一个properties文件中

## db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=root

conf.xml

<properties resource="db.properties"/>
<!-- 
	development : 开发模式
	work : 工作模式
 -->
<environments default="development">
	<environment id="development">
		<transactionManager type="JDBC" />
		<dataSource type="POOLED">
			<property name="driver" value="${driver}" />
			<property name="url" value="${url}" />
			<property name="username" value="${name}" />
			<property name="password" value="${password}" />
		</dataSource>
	</environment>
</environments>

为实体类定义别名,简化sql映射xml文件中的引用

<typeAliases>
	<!-- <typeAlias type="com.xxx.User" alias="_User"/> -->
	<package name="com.xxx.bean"/>
</typeAliases>

在src下加入log4j的配置文件,打印日志信息

1. 添加jar: 
log4j-1.2.16.jar
2.1. log4j.properties(方式一)
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
2.2. log4j.xml(方式二)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" 
				value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
		</layout>
	</appender>
	<logger name="java.sql">
		<level value="debug" />
	</logger>
	<logger name="org.apache.ibatis">
		<level value="debug" />
	</logger>
	<root>
		<level value="debug" />
		<appender-ref ref="STDOUT" />
	</root>
</log4j:configuration>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值