发表于: 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的内容。


返回列表 返回列表
评论

    分享到