发表于: 2017-10-16 22:25:54
6 719
今天学习的内容:
主要复习了一下前几天学的,感觉掌握的不是很好。
项目的结构图:
在conf.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="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/hpe/mapping/stuMapper.xml"/>
</mappers>
</configuration>
stuMapper.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.hpe.mapping.stuMapper">
<!-- 添加学生 -->
<insert id="addStu" parameterType="com.hpe.po.Student">
insert into Student (name,age,sex,grade) values(#{name},#{age},#{sex},#{grade})
</insert>
</mapper>
Student.java代码如下:
package com.hpe.po;
public class Student {
private int id;
private String name;
private int age;
private String sex;
private String grade;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", grade=" + grade + "]";
}
}
测试类TestStuMapper :
package com.hpe.test;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.hpe.po.Student;
import com.hpe.util.MyBatisUtil;
public class TestStuMapper {
@Test
public void testAdd(){
SqlSession sqlSession=MyBatisUtil.getSqlSession(true);
String statement="com.hpe.mapping.stuMapper.addStu";
Student stu = new Student();
stu.setName("诸葛亮");
stu.setAge(20);
stu.setSex("男");
stu.setGrade("二班");
int retResult = sqlSession.insert(statement, stu);
sqlSession.close();
if(retResult==1){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
}
}
工具类MyBatisUtil:
package com.hpe.util;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
/**
* 获取SqlSessionFactory
* @return SqlSessionFactory
*/
public static SqlSessionFactory getSqlSessionFactory(){
String resource="conf.xml";
InputStream is=MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
return factory;
}
/**
* 获取SqlSession
* @return SqlSession
*/
public static SqlSession getSqlSession(){
return getSqlSessionFactory().openSession();
}
/**
* 获取SqlSession
* @param isAutoCommit
* true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务
* false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务
* @return SqlSession
*/
public static SqlSession getSqlSession(boolean isAutoCommit){
return getSqlSessionFactory().openSession(isAutoCommit);
}
}
执行结果:
问题:没有写连接数据库的密码,
在修改过这个错误之后,执行代码,又出现了一种错误:
在stuMapper.xml中的配置如下:
在代码中却写成了:
改正之后就对了:
明天继续学习关于MyBatis的内容。
评论