Mybatis 学习-2
创建基于session的util类,在线程中共享SqlSession

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickName() {
return nickName;
} public void setNickName(String nickName) {
this.nickName = nickName;
}
}

创建blog_user表对应的实体类User

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickName() {
return nickName;
} public void setNickName(String nickName) {
this.nickName = nickName;
}
}

创建blog_category表对应的实体类Category

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* Category实体类
* @author smart
* 与blog_category表对应的实体类
*/
public class Category implements Serializable {
//对应表中的主键id
private int id;
//对应表中的cate_name字段
private String cateName; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getCateName() {
return cateName;
} public void setCateName(String cateName) {
this.cateName = cateName;
}
}

创建blog_article表对应的实体类Article

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.Date;
/**
* Article实体类
* @author smart
* 对应blog_article表的实体类
*/
public class Article implements Serializable {
//对应表中的主键id
private int id;
//对应表中的art_title字段
private String title;
//对应表中的art_content字段
private String content;
//对就表中的art_pubtime字段
private Date pubTime;
//对应表中的pub_user_id字段
private int userId;
//对应表中的cate_id字段
private int cateId; public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPubTime() {
return pubTime;
}
public void setPubTime(Date pubTime) {
this.pubTime = pubTime;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getCateId() {
return cateId;
}
public void setCateId(int cateId) {
this.cateId = cateId;
}
}

在核心配置文件中为实体类别名

<?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>
<!-- 配置文件新增的部分,为实体类别名 --->
<typeAliases>
<typeAlias alias="User" type="cn.smartapp.blogs.pojo.User" />
<typeAlias alias="Category" type="cn.smartapp.blogs.pojo.Category" />
<typeAlias alias="Article" type="cn.smartapp.blogs.pojo.Article" />
</typeAliases>
<!-- ========================== --> <environments default="news_res">
<environment id="news_res">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/blogs_db?characterEncoding=utf-8" />
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>

blog_user表与blog_article表存在主从关系,所以为User类与Article类建立一对多关联关系

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* User实体类
* @author smart
* 对应blog_user表
*/
public class User implements Serializable {
//对应表的id字段
private int id;
//对应表的user_name字段
private String userName;
//对应表的user_pass字段
private String password;
//对应表的nick_name字段
private String nickName;
//此处是新增的代码
//为User与Article建立一对多关联
private Set<Article> articles = new HashSet<Article>(); public Set<Article> getArticles() {
return articles;
}
public void setArticles(Set<Article> articles) {
this.articles = articles;
}
//=================================
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
}

blog_category表与blog_article表存在主从关系,所以为Category类与Article类建立一对多关联关系

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.HashSet;
import java.util.Set; /**
* Category实体类
* @author smart
* 与blog_category表对应的实体类
*/
public class Category implements Serializable {
//对应表中的主键id
private int id;
//对应表中的cate_name字段
private String cateName; //此处为新增代码
//为Category与Article类建立一对多关联
private Set<Article> articles = new HashSet<Article>(); public Set<Article> getArticles() {
return articles;
}
//========================== public void setArticles(Set<Article> articles) {
this.articles = articles;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getCateName() {
return cateName;
} public void setCateName(String cateName) {
this.cateName = cateName;
}
}

Article类与User类和Category类实现多对一关联

package cn.smartapp.blogs.pojo; import java.io.Serializable;
import java.util.Date;
/**
* Article实体类
* @author smart
* 对应blog_article表的实体类
*/
public class Article implements Serializable {
//对应表中的主键id
private int id;
//对应表中的art_title字段
private String title;
//对应表中的art_content字段
private String content;
//对就表中的art_pubtime字段
private Date pubTime;
//对应表中的pub_user_id字段
private int userId;
//对应表中的cate_id字段
private int cateId; //此处为新增代码
//实现多对一关联关系
private User user;
private Category category; public User getUser() {
this.setUserId(user.getId()); //外键关联
return user;
}
public void setUser(User user) {
this.user = user;
}
public Category getCategory() {
this.setCateId(category.getId()); //外键关联
return category;
}
public void setCategory(Category category) {
this.category = category;
}
//==================================== public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPubTime() {
return pubTime;
}
public void setPubTime(Date pubTime) {
this.pubTime = pubTime;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public int getCateId() {
return cateId;
}
public void setCateId(int cateId) {
this.cateId = cateId;
}
}
Mybatis 学习-2的更多相关文章
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- (原创)mybatis学习一,夯实基础
一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 【Todo】Mybatis学习-偏理论
之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html <SSM(SpringMVC+Spring+Myba ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
随机推荐
- 【leetcode❤python】Ransom Note
#-*- coding: UTF-8 -*- class Solution(object): def canConstruct(self, ransomNote, magazine): ...
- CodeForces 146A Lucky Ticket
Lucky Ticket Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submi ...
- Socket&GCDAsyncSocket(异步Socket)
Socket ********************************************* 简单理解Socket 就是网络连接,可以实现两个点之间的数据通讯. •Socket允许使用长连 ...
- HDU 3496 Watch The Movie(看电影)
HDU 3496 Watch The Movie(看电影) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] New sem ...
- POJ 3286 How many 0's?(几多0?)
POJ 3286 How many 0's?(几多0?) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] A Benedi ...
- Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- NoSql存储日志数据之Spring+Logback+Hbase深度集成
NoSql存储日志数据之Spring+Logback+Hbase深度集成 关键词:nosql, spring logback, logback hbase appender 技术框架:spring-d ...
- Python标准库之Sys模块使用详解
sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 使用sy ...
- json、javaBean、xml互转的几种工具介绍 (转载)
工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简 ...
- [转载] iptables配置实践
原文: http://wsgzao.github.io/post/iptables/ iptables配置实践 By wsgzao 发表于 2015-07-24 文章目录 1. 前言 2. 更新历史 ...