弄了个web project项目
UserMapper.java代码
package cn.dao;
import cn.pojo.User;
public interface UserMapper {
int add(User user);
}
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">
<mapper namespace="cn.dao.UserMapper">
<insert id="saveUser" parameterType="user" useGeneratedKeys="true">
INSERT INTO TB_USER(name,sex,age) VALUES(#{name},#{sex},#{age})
</insert>
<select id="selectUser" parameterType="int" resultType="user">
SELECT *from TB_USER WHERE id=#{id}
</select>
<update id="modifyUser" parameterType="user">
UPDATE TB_USER SET name=#{name},sex=#{sex},age=#{age} WHERE id=#{id}
</update>
<delete id="removeUser" parameterType="int">
DELETE FROM TB_USER WHERE id=#{id}
</delete>
<insert id="add" parameterType="user">
INSERT INTO TB_USER(`name`,`sex`,`age`) VALUES(#{name},#{sex},#{age})
</insert>
<select id="selectAll" resultType="User">
SELECT *FROM TB_USER
</select>
</mapper>
User.java代码
package cn.pojo;
import java.io.Serializable;
import org.apache.ibatis.type.Alias;
/**
* @author AUSU
*
*/
//@Alias("user")
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id; //用户标识
private String name; //用户姓名
private String sex; //用户性别
private Integer age; //用户年龄
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
//无参数的构造方法
public User() {
super();
// TODO Auto-generated constructor stub
}
//有参数的构造方法
public User(String name, String sex, Integer age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
//setter和getter
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
在这里注意一下:
@Alias("user"),我注释掉了,如果有注解,则别名为其注解值user
Test.java代码
package cn.test;
import java.io.InputStream;
import java.text.Normalizer.Form;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import cn.util.MyBatisUtil;
import cn.dao.UserMapper;
import cn.pojo.User;
public class Test {
public static void main(String[] args) {
//创建SqlSession实例,赋给SqlSession变量
SqlSession sqlSession = MyBatisUtil.getSqlSession();
//方法一:将User对象作为参数调用SqlSession的insert方法,MyBatis会找到cn.dao.UserMapper命名空间下
//id="saveUser"的元素,执行该元素的SQL语句
//User user=new User("jack","男",55);
//int count=sqlSession.insert("cn.dao.UserMapper.saveUser",user);
//根据id查询User对象
User user=sqlSession.selectOne("cn.dao.UserMapper.selectUser",5);
System.out.println(user);
//修改User对象的属性值
user.setName("chyyy");
user.setAge(65);
//修改User对象
sqlSession.update("cn.dao.UserMapper.modifyUser",user);
System.out.println(user);
//删除id为1的User对象
sqlSession.delete("cn.dao.UserMapper.removeUser",1);
//查询表中所有数据返回List集合,集合中的每个元素都是一个Map
//List<Map<String,Object>> list=sqlSession.selectList("cn.dao.UserMapper.selectAll");
//遍历List集合,打印每一个Map集合
//list.forEach(row->System.out.println(row);); 在这里用不了,要1.8才行,而且UserMapper里面的resultType.xml的参数值要改为map
//我这样也行,不过UserMapper.xml里面的resultType的参数值要改为User
List<User> list=sqlSession.selectList("cn.dao.UserMapper.selectAll");
System.out.println(list); //方法一输出,不过不好看
for (User list1 : list) { //方法二输出,这种用在第一个好像不行
System.out.println(list1);
}
//方法二:我在UserMapper.java里面自己写一个增加的方法,然后通过getMapper去调用
//User user=new User("tom","女",52);
//int count=sqlSession.getMapper(UserMapper.class).add(user);
sqlSession.commit(); //提交事务
//System.out.println("增加了"+count+"条数据!");
MyBatisUtil.closeSession(sqlSession);
}
}
MyBatisUtil.java代码
package cn.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory;
/**
* 创建SqlSessionFactory 只创建一次
*/
static{
try {
String resource = "mybatis-config.xml";
InputStream inputStream;
inputStream = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory对象,读取配置文件
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获得SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
/**
* 获得 SqlSession
* @return SqlSession
*/
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(false);
}
/**
* 關閉sqlSession
* @param sqlSession
*/
public static void closeSession(SqlSession sqlSession){
if(sqlSession!=null){
sqlSession.close();
}
}
}
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="database.properties"></properties>
<!-- 日志 -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- 类型命名:别名 -->
<typeAliases>
<typeAlias type="cn.pojo.User" alias="User"/>
</typeAliases>
<!-- <typeAliases>
<package name="cn.pojo"/>
</typeAliases> -->
<!-- 运行环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/dao/UserMapper.xml" />
</mappers>
</configuration>
运行结果:
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@457e2f02]
DEBUG [main] - ==> Preparing: SELECT *from TB_USER WHERE id=?
DEBUG [main] - ==> Parameters: 5(Integer)
User [id=5, name=chyyy, sex=女, age=65]
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@457e2f02]
DEBUG [main] - ==> Preparing: UPDATE TB_USER SET name=?,sex=?,age=? WHERE id=?
DEBUG [main] - ==> Parameters: chyyy(String), 女(String), 65(Integer), 5(Integer)
User [id=5, name=chyyy, sex=女, age=65]
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@457e2f02]
DEBUG [main] - ==> Preparing: DELETE FROM TB_USER WHERE id=?
DEBUG [main] - ==> Parameters: 1(Integer)
DEBUG [main] - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@457e2f02]
DEBUG [main] - ==> Preparing: SELECT *FROM TB_USER
DEBUG [main] - ==> Parameters:
[User [id=2, name=admin, sex=男, age=27], User [id=3, name=admin, sex=男, age=39], User [id=4, name=admin, sex=男, age=40], User [id=5, name=chyyy, sex=女, age=65], User [id=6, name=admin, sex=女, age=48], User [id=7, name=admin, sex=人, age=48], User [id=8, name=admin, sex=人, age=48], User [id=9, name=chy, sex=人, age=48], User [id=10, name=chy, sex=人, age=48], User [id=11, name=chy, sex=人, age=48], User [id=12, name=chy, sex=人, age=48], User [id=13, name=chy, sex=人, age=48], User [id=14, name=chy, sex=人, age=48], User [id=15, name=chy, sex=人, age=48], User [id=16, name=chy, sex=人, age=48], User [id=17, name=chy, sex=人, age=48], User [id=18, name=chy, sex=人, age=48], User [id=19, name=chy, sex=人, age=48], User [id=20, name=jack, sex=男, age=55], User [id=21, name=jack, sex=男, age=55], User [id=22, name=tom, sex=女, age=52]]
User [id=2, name=admin, sex=男, age=27]
User [id=3, name=admin, sex=男, age=39]
User [id=4, name=admin, sex=男, age=40]
User [id=5, name=chyyy, sex=女, age=65]
User [id=6, name=admin, sex=女, age=48]
User [id=7, name=admin, sex=人, age=48]
User [id=8, name=admin, sex=人, age=48]
User [id=9, name=chy, sex=人, age=48]
User [id=10, name=chy, sex=人, age=48]