"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
<?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>
<!-- 和spring整合后 environments配置将废除 -->
<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="root" />
</dataSource>
</environment>
</environments>
</configuration>
<?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:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">
</mapper>
<mappers>
<mapper resource="sqlmap/User.xml" />
</mappers>
public class MyBatisDemo1 {
private SqlSessionFactory sqlSessionFactory;
@Before
public void testJunit() throws IOException {
String resource = "SqlMapConfig.xml";
InputStream is = Resources.getResourceAsStream(resource);
//InputStream is = this.getClass().getClassLoader().getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
}
@Test
public void findUserById() {//实现根据id查询用户
SqlSession session = sqlSessionFactory.openSession();
User user = session.selectOne("test.selectUserById",10);
System.out.println(user);
session.close();
}
@Test
public void findUserByUserName() {//实现根据用户名模糊查询用户
SqlSession session = sqlSessionFactory.openSession();
List<User> selectList = session.selectList("test.selectUserByUserName", "王");
for (User user : selectList) {
System.out.println(user);
}
session.close();
}
@Test
public void insertNewUser() {//实现添加用户
SqlSession session = sqlSessionFactory.openSession();
User user = new User("二狗", "男", new Date(), "二狗街道");
int row = session.insert("test.insertNewUser", user);
System.out.println(user.getId());
"需要进行事务提交"
session.commit();
session.close();
}
@Test
public void updateUser() {//修改用户
SqlSession session = sqlSessionFactory.openSession();
User user = new User(29,"二狗", "女", new Date(), "二狗新街");
int row = session.insert("test.updateUser", user);
System.out.println(row);
session.commit();
session.close();
}
@Test
public void delUser() {//删除用户
SqlSession session = sqlSessionFactory.openSession();
int row = session.insert("test.delUser", 29);
System.out.println(row);
session.commit();
session.close();
}
}
<mapper namespace="test">
<select id="selectUserById" parameterType="Integer" resultType="com.itcast.mybatis.domian.User">
SELECT * FROM user where id = #{id}
</select>
<select id="selectUserByUserName" parameterType="String" resultType="com.itcast.mybatis.domian.User">
SELECT * FROM user where username like "%"#{username}"%";
</select>
<insert id="insertNewUser" parameterType="com.itcast.mybatis.domian.User">
<selectKey keyColumn="id" keyProperty="id" order="AFTER" resultType="Integer">
SELECT LAST_INSERT_ID();
</selectKey>
insert into user (username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
</insert>
<update id="delUser" parameterType="Integer">
delete from user where id = #{id}
</update>
</mapper>public class UserDaoImpl implements UserDao {
@Autoware
private SqlSessionFactory sqlSessionFactory;
"通过用户ID查询一个用户"
public User selectUserById(Integer id){
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession.selectOne("test.findUserById", id);
}
}public interface UserMapper {
public User findUserById(Integer id);
}@Autoware
private SqlSessionFactory sqlSessionFactory;
public void testMapper() throws Exception {
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
System.out.println(userMapper.findUserById(10));
sqlSession.commit();
sqlSession.close();
}
<properties resource="db.properties">
<!-- 在properties内部用property定义属性 -->
<!-- 如果外部配置文件有该属性,则内部定义属性被外部属性覆盖 -->
<property name="jdbc.username" value="root123" />
<property name="jdbc.password" value="root123" />
</properties>
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<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>
<typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="cn.itcast.mybatis.pojo.User" />
<!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感) -->
<package name="cn.itcast.mybatis.pojo" />
<package name="其它包" />
</typeAliases>
<mappers>
<mapper resource="sqlmap/User.xml" class="" url=""/>
<mapper class="com.itheima.mybatis.mapper.UserMapper" />
"此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中"
<package name="com.itheima.mybatis.mapper"/>
"此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中"
<mapper url="决定地址,不实用" />
</mappers>
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |