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>
<!-- 通过environments的default值和environment的id来指定mybatis运行的数据库环境 -->
<environments default="development">
<!-- 本机环境 (真正的项目应该在别的计算机) -->
<environment id="development">
<!-- 事务的提交方式
JDBC:利用JDBC方式处理事务(commit rollback close) 手工
MANAGED:将事务交由其他组件去托管(Spring,jboss) 自动 默认会关闭连接 <property name="closeConnection" value="false"/>
-->
<transactionManager type="JDBC"/>
<!--数据源类型
POOLED:使用数据库连接池
UNPOOLED:使用传统的JDBC模式(每次访问数据库,均需要打开关闭数据库)
JNDI:从tomcat中获取一个内置数据库连接池
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="lf123456"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="com/user/UserMapper.xml"/>
<mapper resource="com/user/StudentMapper.xml"/>
</mappers>
</configuration>
studentmapper.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="com.user.StudentMapper1">
<select id="StudentById" resultType="com.user.Student" parameterType="String">
<!-- 输入输出:如果是简单类型,可以以使用任何占位符,#{xxx}
如果是对象,只能是属性
-->
select * from student where stu_id = #{id}
</select>
<insert id="insertStu" parameterType="com.user.Student">
insert into student(stu_id,stu_name,stu_birth,stu_sex) values(#{stu_id},#{stu_name},#{stu_birth},#{stu_sex})
</insert>
<delete id="deleteStuByNo" parameterType="String">
delete from student where stu_id=#{xxx}
</delete>
<update id="updateStudentByStuNo" parameterType="com.user.Student">
update student set stu_name=#{stu_name},stu_birth=#{stu_birth},stu_sex=#{stu_sex} where stu_id = #{stu_id}
</update>
<!-- 如果返回值类型是一个对象,则无论返回一个还是多个,resultType都写成类com.user.Student -->
<select id="queryAllStu" resultType="com.user.Student">
select * from student
</select>
</mapper>
测试类
package com.user;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
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 com.user.Student;
public class TestMybatis3 {
public static void main(String[] args) throws IOException {
queryall();
addStu();
queryall();
}
//查询所有学生
public static void queryall() throws IOException {
Reader reader = Resources.getResourceAsReader("config.xml");
//build第二个参数可以指定该环境id
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlSessionFactory.openSession();
String sql = "com.user.StudentMapper1.queryAllStu";
List<Student> stu = session.selectList(sql);
System.out.println(stu);
session.close();
}
//增加
public static void addStu() throws IOException {
Reader reader = Resources.getResourceAsReader("config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sqlSessionFactory.openSession();
String sql = "com.user.StudentMapper1.insertStu";
Student stu = new Student();
stu.setStu_id("1508080117");
stu.setStu_name("里斯");
stu.setStu_birth("1996-11-11");
stu.setStu_sex("男");
int count = session.insert(sql,stu);
session.commit();//使用JDBC,增删改必须手动提交
System.out.println("增加了"+count+"行");
session.close();
}
}