利用mybatis連接mysql數據庫進行數據的操作


整體結構如下:

首先寫大配置,該配置的作用是連接數據庫。

   可以將連接數據庫的方法單獨提出來,寫在jdbc.propterties中,代碼如下:

jdbc.driver=com.mysql.jdbc.Driver //加載驅動
jdbc.url=jdbc:mysql://localhost:3306/school //連接mysql數據庫
jdbc.username=root //數據庫用戶名
jdbc.password=123156 //數據庫密碼

大配置文件的名稱一般為mybatis-config.xml

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> <!--根節點 -->
<!--讓程序識別到jdbc.propterties -->
<properties resource="jdbc.properties">
</properties>
<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.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--映射文件:描述某個實體和數據庫表的對應關系 -->
<!--關聯小配置 -->
<mappers>
<mapper resource="cn/happy/dao/IStudentDAO.xml" />
<!-- <package name="cn.happy.dao"></package>-->
</mappers>
</configuration>

下面以學校管理學生為例
實體層
/**
* Created by Administrator on 2017/9/14.
*/
public class Student {
private Integer id;
private String name;

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;
}
}

接口
/**
* Created by Administrator on 2017/9/14.
*/
public interface IStudentDAO {

/**
* 查詢所有
* @return
*/
public List<Student> getAll();

/**
* 新增
* @param student
* @return
*/
public int addStudent(Student student) throws Exception;
}


小配置文件 該文件同樣是以.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.happy.dao.IStudentDAO">
<!--查詢所有-->
<select id="getAll" resultType="cn.happy.entity.Student">
select *from student
</select>
<!--新增學生-->
<select id="addStudent" resultType="cn.happy.entity.Student">
insert into student(name) value(#{name})
</select>
</mapper>


測試類
public class testStudent {
@Test
/**
* 查詢
*/
public void getAll() throws Exception{
String resource = "mybatis-config.xml";
//將硬盤中的xml變成一個輸入流
InputStream inputStream = Resources.getResourceAsStream(resource);
//使用流對象創建一個會話工廠
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
//session就是程序員與數據庫交互的入口
SqlSession session = sf.openSession();
IStudentDAO mapper = session.getMapper(IStudentDAO.class);
List<Student> all = mapper.getAll();
for (Student item:all){
System.out.println(item.getName());
}
session.commit();
//關閉會話,釋放資源
session.close();
}

/**
* 新增
* @throws Exception
*/
public void inserts() throws Exception{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sf.openSession();
Student student=new Student();
student.setName("張飛");
int count = session.insert("cn.happy.dao.IStudentDAO.addStudent",student);
System.out.println(count);
session.commit();
session.close();
}

}
 
這里只寫了新增和查詢所有,刪除和修改類似,只有需要做小的改動,因此這里就不寫出來了。

 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM