创建基于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的更多相关文章

  1. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  2. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  3. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  4. (原创)mybatis学习二,spring和mybatis的融合

    mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...

  5. (原创)mybatis学习一,夯实基础

    一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  8. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  9. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  10. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

随机推荐

  1. 可是把ie67下面的bug改好了,其实很简单,ie67下面取出来的字符串是带有空格的,不知道为什么

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. Cheatsheet: 2013 10.24 ~ 10.31

    Web Performance Comparison Between Node.js and Java EE Other Hidden Productivity Secrets With Alfred ...

  3. CPU的一些参数和排名

    排名的信息来源: http://itianti.sinaapp.com/index.php/cpu 一些参数的信息来源: http://ark.intel.com/ 个人关注一些的一些CPU排名: I ...

  4. 《Linux内核设计的艺术》学习笔记(五)INT 0x10中断

    参考书籍: 1. <IBM-PC汇编语言程序设计> 2. http://www.ctyme.com/intr/int-10.htm   ◆ 设置显示方式: 功能号:AH = 00H 调用参 ...

  5. 10款Windows命令行工具

    Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows下,也有一些不错的工具替代CMD: 0.powercmd经过比较,我最终选择了这款,这里补充一下截图:

  6. Gradient Boosted Regression Trees 2

    Gradient Boosted Regression Trees 2   Regularization GBRT provide three knobs to control overfitting ...

  7. Generator 函数的含义与用法

    Generator 函数是协程在 ES6 的实现,最大特点就是可以交出函数的执行权(即暂停执行). function* gen(x){ var y = yield x + 2; return y; } ...

  8. Python学习(9)列表

    目录 Python 列表 访问列表中的值 更新列表 删除列表元素 列表脚本操作符 列表截取 列表函数&方法 Python 列表(List) 序列是Python中最基本的数据结构.序列中的每个元 ...

  9. intersection-of-two-arrays-ii

    https://leetcode.com/problems/intersection-of-two-arrays-ii/ class Solution { public: vector<int& ...

  10. adb 查看日志信息

    adb logcat 详解  (1) 下面命令将只会显示AndroidRuntime类型的Error消息:         adb  logcat -s AndroidRuntime  (2) 显示全 ...