搜档网
当前位置:搜档网 › mybatis笔记(超详细全面)

mybatis笔记(超详细全面)

mybatis笔记(超详细全面)
mybatis笔记(超详细全面)

1.Mybatis入门

从一个jdbc程序开始

publicstaticvoid main(String[] args) {

Connection connection = null;

PreparedStatement preparedStatement = null;

ResultSet resultSet = null;

try {

//加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

//通过驱动管理类获取数据库链接

connection =

DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?charac terEncoding=utf-8", "root", "mysql");

//定义sql语句 ?表示占位符

String sql = "select * from user where username = ?";

//获取预处理statement

preparedStatement = connection.prepareStatement(sql);

//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值

preparedStatement.setString(1, "王五");

//向数据库发出sql执行查询,查询出结果集

resultSet = preparedStatement.executeQuery();

//遍历查询结果集

while(resultSet.next()){

System.out.println(resultSet.getString("id")+"

"+resultSet.getString("username"));

}

} catch (Exception e) {

e.printStackTrace();

}finally{

//释放资源

if(resultSet!=null){

try {

resultSet.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(preparedStatement!=null){

try {

preparedStatement.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(connection!=null){

try {

connection.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

上边使用jdbc的原始方法(未经封装)实现了查询数据库表记录的操作。

jdbc操作步骤总结如下:

1、加载数据库驱动

2、创建并获取数据库链接

3、创建jdbc statement对象

4、设置sql语句

5、设置sql语句中的参数(使用preparedStatement)

6、通过statement执行sql并获取结果

7、对sql执行结果进行解析处理

8、释放资源(resultSet、preparedstatement、connection)

jdbc问题总结如下:

1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接

池可解决此问题。

2、Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改

变java代码。

3、向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符

需要和参数一一对应。

4、对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库

记录封装成pojo对象解析比较方便。

MyBatis介绍

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的方式将要执行的statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

Mybatis架构

1、mybatis配置

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

2、通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

3、由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。

4、mybatis底层自定义了Executor接口操作数据库,Executor接口有两个实现,一个是基本

实现、一个是缓存实现。

5、Mapped Statement也是mybatis一个底层对象,它包装了mybatis配置信息及sql映射信

息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

6、Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor

通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

7、Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor

通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

Mybatis第一个程序

第一步:创建JAVA工程

使用eclipse创建java工程,jdk使用1.6。

第二步:加入jar包

加入mybatis核心包、依赖包、数据驱动包。

第三步:log4j.properties

在classpath下创建log4j.properties如下:

# Global logging configuration

log4j.rootLogger=DEBUG, stdout

# Console output...

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

https://www.sodocs.net/doc/de14457836.html,yout=org.apache.log4j.PatternLayout

https://www.sodocs.net/doc/de14457836.html,yout.ConversionPattern=%5p [%t] - %m%n

mybatis默认使用log4j作为输出日志信息。

第四步:SqlMapConfig.xml

在classpath下创建SqlMapConfig.xml,如下:

PUBLIC"-//https://www.sodocs.net/doc/de14457836.html,//DTD Config 3.0//EN"

"https://www.sodocs.net/doc/de14457836.html,/dtd/mybatis-3-config.dtd">

SqlMapConfig.xml是mybatis核心配置文件,上边文件的配置内容为数据源、事务管理。

第五步:po类

Po类作为mybatis进行sql映射使用,po类通常与数据库表对应,User.java如下:

publicclass User {

privateint id;

private String username;// 用户姓名

private String sex;// 性别

private Date birthday;// 出生日期

private String address;// 地址

private String detail;// 详细信息

private Float score;// 成绩

get/set……

第六步:sql映射文件

在classpath下的sqlmap目录下创建sql映射文件User.xml:

PUBLIC"-//https://www.sodocs.net/doc/de14457836.html,//DTD Mapper 3.0//EN"

"https://www.sodocs.net/doc/de14457836.html,/dtd/mybatis-3-mapper.dtd">

insert into user(username,birthday,sex,address,detail,score)

values(#{username},#{birthday},#{sex},#{address},#{detail},#{score});

update user set

username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} ,detail=#{detail},score=#{score}

where id=#{id}

delete from user where id=#{id}

namespace :命名空间,用于隔离sql语句,后面会讲另一层非常重要的作用。parameterType:定义输入到sql中的映射类型,#{id}表示使用preparedstatement设置占位符号并将输入变量id传到sql。

resultType:定义结果映射类型。

第七步:将User.xml添加在SqlMapConfig.xml

在SqlMapConfig.xml中添加mappers如下:

这里即告诉mybatis Sql映射文件在哪里。

第八步:程序编写

查询

/**

* 第一个mybatis程序

*

* @author Thinkpad

*

*/

publicclass Mybatis_select {

publicstaticvoid main(String[] args) throws IOException { //mybatis配置文件

String resource = "sqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//使用SqlSessionFactoryBuilder创建sessionFactory

SqlSessionFactory sqlSessionFactory =

new SqlSessionFactoryBuilder()

.build(inputStream);

//通过session工厂获取一个Sqlsession,sqlsession中包括了对数据库操作的sql方法

SqlSession session = sqlSessionFactory.openSession();

try {

//通过sqlsession调用selectOne方法获取一条结果集

//参数1:指定定义的statement的id,参数2:指定向statement中传递的参数

User user = session.selectOne("test.selectUserById", 1);

System.out.println(user);

} finally{

session.close();

}

}

}

添加

publicclass Mybatis_insert {

publicstaticvoid main(String[] args) throws IOException {

//mybatis配置文件

String resource = "sqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//使用SqlSessionFactoryBuilder创建sessionFactory

SqlSessionFactory sqlSessionFactory =

new SqlSessionFactoryBuilder()

.build(inputStream);

//通过session工厂获取一个Sqlsession,sqlsession中包括了对数据库操作的sql方法

SqlSession session = sqlSessionFactory.openSession();

try {

User user = new User();

user.setUsername("张三");

user.setBirthday(new Date());

user.setSex("1");

user.setAddress("北京市");

user.setDetail("好同志");

user.setScore(99.8f);

session.insert("test.insertUser", user);

https://www.sodocs.net/doc/de14457836.html,mit();

} finally{

session.close();

}

}

}

主键返回

通过修改sql映射文件,可以将mysql自增主键返回:

select LAST_INSERT_ID()

insert into user(username,birthday,sex,address,detail,score)

values(#{username},#{birthday},#{sex},#{address},#{detail},#{score});

添加selectKey实现将主键返回

keyProperty:返回的主键存储在pojo中的哪个属性

order:selectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after resultType:返回的主键是什么类型

LAST_INSERT_ID():是mysql的函数

Oracle可采用序列完成:

首先自定义一个序列且于生成主键,selectKey使用如下:

keyProperty="id">

SELECT 自定义序列.NEXTVAL FROM DUAL

注意这里使用的order是“BEFORE”

删除

publicclass Mybatis_delete {

publicstaticvoid main(String[] args) throws IOException { //mybatis配置文件

String resource = "sqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//使用SqlSessionFactoryBuilder创建sessionFactory

SqlSessionFactory sqlSessionFactory =

new SqlSessionFactoryBuilder()

.build(inputStream);

//通过session工厂获取一个Sqlsession,sqlsession中包括了对数据库操作的sql方法

SqlSession session = sqlSessionFactory.openSession();

try {

session.delete("test.deleteUser", 4);

https://www.sodocs.net/doc/de14457836.html,mit();

} finally{

session.close();

}

}

}

修改

publicclass Mybatis_update {

publicstaticvoid main(String[] args) throws IOException {

//mybatis配置文件

String resource = "sqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//使用SqlSessionFactoryBuilder创建sessionFactory

SqlSessionFactory sqlSessionFactory =

new SqlSessionFactoryBuilder()

.build(inputStream);

//通过session工厂获取一个Sqlsession,sqlsession中包括了对数据库操作的sql方法

SqlSession session = sqlSessionFactory.openSession();

try {

User user = new User();

user.setId(4);

user.setUsername("李四");

user.setBirthday(new Date());

user.setSex("1");

user.setAddress("北京市");

user.setDetail("好同志");

user.setScore(99.8f);

session.update("test.updateUser", user);

https://www.sodocs.net/doc/de14457836.html,mit();

} finally{

session.close();

}

}

}

步骤总结:

1、创建SqlSessionFactory

2、通过SqlSessionFactory创建SqlSession

3、通过sqlsession执行数据库操作

4、调用https://www.sodocs.net/doc/de14457836.html,mit()提交事务

5、调用session.close()关闭会话

Mybatis解决jdbc编程的问题

1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接

池可解决此问题。

解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。

2、Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改

变java代码。

解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。

3、向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符

需要和参数一一对应。

解决:Mybatis自动将java对象映射至sql语句。

4、对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库

记录封装成pojo对象解析比较方便。

解决:Mybatis自动将sql执行结果映射至java对象。

与hibernate不同

Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java

对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。

Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql 映射文件,工作量大。

Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate 的学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。

总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。

2.SqlSession

SqlSession中封装了对数据库的sql操作,如:查询、插入、更新、删除等。

通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSessionFactoryBuilder 进行创建。

SqlSessionFactoryBuilder

SqlSessionFacoty是通过SqlSessionFactoryBuilder进行创建,SqlSessionFactoryBuilder只用于创建SqlSessionFactory,可以当成一个工具类,在使用时随时拿来使用不需要特殊处理为共享对象。

SqlSessionFactory

SqlSessionFactory是一个接口,接口中定义了openSession的不同方式,SqlSessionFactory一但创建后可以重复使用,实际应用时通常设计为单例模式。

SqlSession

SqlSession是一个接口,默认使用DefaultSqlSession实现类,sqlSession中定义了数据库操作。

执行过程如下:

1、加载数据源等配置信息

Environment environment = configuration.getEnvironment();

2、创建数据库链接

3、创建事务对象

4、创建Executor,SqlSession所有操作都是通过Executor完成,mybatis源码如下:

if (ExecutorType.BATCH == executorType) {

executor = new BatchExecutor(this, transaction);

} elseif (ExecutorType.REUSE == executorType) {

executor = new ReuseExecutor(this, transaction);

} else {

executor = new SimpleExecutor(this, transaction);

}

if (cacheEnabled) {

executor = new CachingExecutor(executor, autoCommit);

}

5、SqlSession的实现类即DefaultSqlSession,此对象中对操作数据库实质上用的是Executor

结论:每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段甚至是实例字段中。

https://www.sodocs.net/doc/de14457836.html,space的作用(重要)

命名空间除了对sql进行隔离,mybatis中对命名空间有特殊的作用,用于定义mapper 接口地址。

问题:

没有使用接口编程,java是面向接口编程语言,对数据库的操作应该定义一些操作接口,如:用户添加、用户删除、用户查询等,调用dao接口完成数据库操作。

解决:

publicinterface UserDao {

public User getUserById(int id) throws Exception;

publicvoid insertUser(User user) throws Exception;

}

publicclass UserDaoImpl implements UserDao {

public UserDaoImpl(SqlSessionFactory sqlSessionFactory){

this.setSqlSessionFactory(sqlSessionFactory);

}

private SqlSessionFactory sqlSessionFactory;

@Override

public User getUserById(int id) throws Exception {

SqlSession session = sqlSessionFactory.openSession();

User user = null;

try {

//通过sqlsession调用selectOne方法获取一条结果集

//参数1:指定定义的statement的id,参数2:指定向statement中传递的参数

user = session.selectOne("selectUserById", 1);

System.out.println(user);

//获取List

List list = session.selectList("selectUserList");

System.out.println(list);

} finally{

session.close();

}

return user;

}

@Override

publicvoid insertUser(User user) throws Exception {

SqlSession session = sqlSessionFactory.openSession();

try {

session.insert("insertUser", user);

https://www.sodocs.net/doc/de14457836.html,mit();

} finally{

session.close();

}

}

public SqlSessionFactory getSqlSessionFactory() {

return sqlSessionFactory;

}

publicvoid setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {

this.sqlSessionFactory = sqlSessionFactory;

}

}

问题:

第一个例子中,在访问sql映射文件中定义的sql时需要调用sqlSession的selectOne方法,并将sql的位置(命名空间+id)和参数传递到selectOne方法中,且第一个参数是一个长长的字符串,第二个参数是一个object对象,这对于程序编写有很大的不方便,很多问题无法在编译阶段发现。

虽然上边对提出的面向接口编程问题进行解决,但是dao实现方法中仍然是调用sqlSession 的selectOne方法,重复代码多。

改为mapper 接口实现:

第一步:定义mapper.xml

Mapper.xml文件不变还用原来的。

第二步:定义mapper 接口

/**

* 用户管理mapper

* @author Thinkpad

*

*/

publicinterface UserMapper {

public User selectUserById(int id) throws Exception;

public List selectUserList() throws Exception;

publicvoid insertUser(User user) throws Exception;

publicvoid updateUser(User user) throws Exception;

publicvoid deleteUser(int id) throws Exception;

}

接口定义有如下特点:

1、Mapper接口方法名和mapper.xml中定义的每个sql的id相同

2、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的

类型相同

3、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相

第三步:修改namespace

Mapper.xml映射文件中的namepace改为如下:

修改后namespace即是mapper接口的地址。

第四步:通过mapper接口调用statement

publicclass UserMapperTest extends TestCase {

private SqlSessionFactory sqlSessionFactory;

protectedvoid setUp() throws Exception {

//mybatis配置文件

String resource = "sqlMapConfig.xml";

InputStream inputStream = Resources.getResourceAsStream(resource);

//使用SqlSessionFactoryBuilder创建sessionFactory

sqlSessionFactory = new

SqlSessionFactoryBuilder().build(inputStream);

}

publicvoid testSelectUserById() throws Exception {

//获取session

SqlSession session = sqlSessionFactory.openSession();

//获取mapper接口实例

UserMapper userMapper = session.getMapper(UserMapper.class);

//通过mapper接口调用statement

User user = userMapper.selectUserById(1);

System.out.println(user);

//关闭session

session.close();

}

publicvoid testSelectUserList() throws Exception {

//获取session

SqlSession session = sqlSessionFactory.openSession();

//获取mapper接口实例

UserMapper userMapper = session.getMapper(UserMapper.class);

//通过mapper接口调用statement

Listlist = userMapper.selectUserList();

System.out.println(list);

//关闭session

session.close();

}

publicvoid testInsertUser() throws Exception {

//获取session

SqlSession session = sqlSessionFactory.openSession();

//获限mapper接口实例

UserMapper userMapper = session.getMapper(UserMapper.class);

//要添加的数据

User user = new User();

user.setUsername("张三");

user.setBirthday(new Date());

user.setSex("1");

user.setAddress("北京市");

user.setDetail("好同志");

user.setScore(99.8f);

//通过mapper接口添加用户

userMapper.insertUser(user);

//提交

https://www.sodocs.net/doc/de14457836.html,mit();

//关闭session

session.close();

}

publicvoid testUpdateUser() throws Exception {

//获取session

SqlSession session = sqlSessionFactory.openSession();

//获限mapper接口实例

UserMapper userMapper = session.getMapper(UserMapper.class);

//要更新的数据

User user = new User();

user.setId(7);

user.setUsername("李四");

user.setBirthday(new Date());

user.setSex("1");

user.setAddress("北京市");

user.setDetail("好同志");

user.setScore(99.8f);

//通过mapper接口调用statement

userMapper.updateUser(user);

//提交

https://www.sodocs.net/doc/de14457836.html,mit();

//关闭session

session.close();

}

publicvoid testDeleteUser() throws Exception {

//获取session

SqlSession session = sqlSessionFactory.openSession();

//获限mapper接口实例

UserMapper userMapper = session.getMapper(UserMapper.class);

//通过mapper接口删除用户

userMapper.deleteUser(6);

//提交

https://www.sodocs.net/doc/de14457836.html,mit();

//关闭session

session.close();

}

}

session.getMapper(UserMapper.class)生成一个代理对象作为UserMapper的接口实现对象。

总结:

使用mapper接口不用写接口实现类即可完成数据库操作,简单方便,此方法为官方推荐方法。

使用mapper接口调用必须具备如下条件:

1、Mapper接口方法名和mapper.xml中定义的每个sql的id相同

2、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的

类型相同

3、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相

4、Mapper.xml文件中的namespace即是mapper接口的类路径。

至此,mybatis的mapper包括mapper.xml和mapper接口两种文件。

4.SqlMapConfig.xml

配置内容

SqlMapConfig.xml中配置的内容和顺序如下:

properties(属性)

settings(全局配置参数)

typeAliases(类型别名)

typeHandlers(类型处理器)

objectFactory(对象工厂)

plugins(插件)

environments(环境集合属性对象)

environment(环境子属性对象)

transactionManager(事务管理)

dataSource(数据源)

mappers(映射器)

properties(属性)

SqlMapConfig.xml可以引用java属性文件中的配置信息如下:

在classpath下定义db.properties文件,

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis

https://www.sodocs.net/doc/de14457836.html,ername=root

jdbc.password=mysql

SqlMapConfig.xml引用如下:

settings(配置)

mybatis全局配置参数,全局参数将会影响mybatis的运行行为。详细参见“学习资料/mybatis-settings.xlsx”文件

传智播客mybatis课堂笔记

mybatis 第一天mybatis的基础知识 课程安排: mybatis和springmvc通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理(掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: 原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) mybaits的mapper接口(相当于dao接口)代理开发方法(掌握)mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) 第二天:高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程 1对原生态jdbc程序中问题总结 1.1环境 java环境:jdk1.7.0_72 eclipse:indigo mysql:5.1

1.2创建mysql数据 导入下边的脚本: sql_table.sql:记录表结构 sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3jdbc程序 使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(mysql5.1) 上边的是mysql驱动。 下边的是oracle的驱动。 程序代码: 1.4问题总结 1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。 设想:使用数据库连接池管理数据库连接。 2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于

标准日本语初级超详细笔记游荡的人修订

标准日本语初级超详细笔记(游荡的人修订) 12、常识 72、1、外来语 72、2、日语的音调(重音) 72、3、常用中国姓氏读法 82、4、常用日本姓氏读法 82、5、语法术语名称 92、6、日语词汇分类 92、7、地名的读法102、8、英文字母日语读法103、各种常用词1 13、1、数词和量词1 13、1、1、数词1 13、1、2、量词1 23、2、数量、顺序词汇的读法1 33、3、星期的表示1 33、4、日期表达法1 33、5、月份表达法1 43、6、四季表达法1 43、7、时分秒表达法1 43、8、其它时间相关表达法1

54、语法1

64、1、断句1 64、1、1、基本句型(肯定式)1 64、1、2、过去肯定式1 64、1、3、否定式1 64、1、4、过去判否定式1 64、1、5、将来推测式1 64、1、6、疑问式1 64、1、7、特殊疑问式1 74、1、8、中顿式1 74、2、存在句1 74、2、1、存在动词的含义1 74、2、2、存在动词的分工1 74、2、3、存在句句型1 84、3、愿望句式1 84、3、1、(第一人称+肚)…力'/总???Ar S / (第 一人称)想???1 84、3、2、(第一人称+ ?:)...力?/总...;七思X去丁。 / (第一人称)想 (1) 84、3、3、(第一人称 + 肚)?9/J: t 思C)去扌。 / (第一人称)想要 (1) 84、4、形容词1 84、4、1、词形特征1

84、4、2、词尾变化1 84、4、3、形容词的简体与敬体204、5、形容动词204、5、1、词形特征204、5、2、词尾变化(活用)204、5、3、判断助动词[吃]与形容动词词尾[疋]2 14、5、4、形容动词的简体、敬体及其应用2 14、6、动词2 14、6、1、动词分类2 14、6、2、动词的活用形2 24、6、3、授受关系动词及其用法2 74、6、4、动词的使役态、使役助动词」、使役句2 84、6、5、动词的被动态及被动助动词」2 94、6、6、可能态及可能动词3 14、7、助词、助动词3 24、7、1、提示助词血]3 24、7、2、提示助词[£]3 24、7、3、助词[力订3 24、7、4、领格助词[<D]3 24、7、5、终助词[力、]3 34、7、6、接续助词[T]3 34、7、7、提示助词血]3 34、7、8、接续助词[力心3 34、7、9、补格助词[J:门3

MyBatis魔法堂:Insert操作详解(返回主键、批量插入

一、前 言 数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。 二、 insert元素属性详解 其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中 useGeneratedKeys ,取值范围true|false(默认值),设置是否使用JDBC的getGenereatedKeys 方法获取主键并赋值到keyProperty设置的领域模型属性中。MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了 statementType ,取值范围STATEMENT,PREPARED(默认值),CALLABLE flushCache ,取值范围true(默认值)|false,设置执行该操作后是否会清空二级缓存和本地缓存 timeout ,默认为unset(依赖jdbc驱动器的设置),设置执行该操作的最大时限,超时将抛异常

databaseId ,取值范围oracle|mysql等,表示数据库厂家,元素内部可通过``来为特定数据库指定不同的sql语句 三、一般的INSERT操作——返回值为插入的记录数目mapper接口代码: /** * 添加学生信息 * @param student 学生实例 * @return 成功操作的记录数目 */ int add(EStudent student); mapper.xml: insert into TStudent(name, age) values(#{name}, #{age})

《管理学原理》娄成武魏淑艳三计划超详细背诵版笔记.doc

第三章计划 第一节,计划工作概述 1、什么是计划? 计划是通过将组织在一定时期内的目标和任务进行分解,落实到组织的具体工作部门和个人,从而保证组织工作有序进行和组织目标得以实现的过程。 计划的概念有广义和狭义之分,广义的计划概念包括制定计划、执行计划、检查计划执行情况和调整计划四个相互关联的过程。 其中制定计划是一个包括环境分析、目标确定、方案选择的过程,预测与决策都是这一过程中某一阶段的工作内容。 狭义的计划概念仅指制定计划。 2、计划的内容有哪些? (1)做什么即对计划的目标和任务的确定。相对于企业生产计划而言,是指企业在一定时期内生产什么产品,生产多少,要达到多少产值。相对于政府的国民经济发展计划而言,是指一定时期内国民生产总值达到多少,国民经济发展采取措施,应优先发展哪些产业。 (2)为什么做明确计划工作的原因和目的。实践表明,只有组织成员明确组织计划工作的原因和目的,组织成员的工作才有积极性和主动性。 (3)何时做即规定计划工作的时间限制,如何时开始,何时结束。时间的规定是计划工作必不可少的内容,它是组织工作讲求效率,合理安排组织各种资源的重要依据。 (4)何地做这是对计划实施地点的确定。规定计划的实施地点和场所,了解计划实施的环境条件和限制,以便合理安排计划实施的地点和场所。 (5)谁去做即对计划执行者的确定,也就是明确规定实施计划的部门和人员,以便计划得到执行。 (6)怎么做即对实施计划的具体行动措施、政策、规则的规定,对人力与物力资源分配和使用的规定。 3、计划的类型有几种? 根据这一标准可以把计划分为战略性计划和作业性计划。 是寻求组织长远发展的宏观性质的计划。其 制定者是组织的最高管理层,计划的内容比较笼统,计划的期限较长,计划的影响也很大,一旦战略计划失误,组织的生存与发展必将受到严重影响。 是保证组织目标实现的微观性质的 计划。其制定者为组织的基层管理者,计划的内容比较具体,计划的时间较短,计划的影响程度不及战略性计划。 ②按计划的层次分类 依据这一标准可以把计划分为宗旨、目标、战略、政策、规则、程序、规划、预算。(记住顺序)

标准日语初级详细笔记

1.日语假名及其发音一览 平片罗平片罗平片罗平片罗平片罗 假假马假假马假假马假假马假假马 音音音音音 ______________________________________________________________________________ あ? a い?i う?u え゛ e おゝo かゞka き?ki くアku けイke こウko さエsa しオsi/shi すガsu せギse そグso たゲta ちゴchi つシtsu てスte とセto なソna にゾni ぬタnu ねダne のチno はヂha ひヅhi ふトfu へニhe ほノho まパma みヒmi むビmu めピme もフmo やプya ゆベyu よホyo らボra りポri るマru れミre ろムro わワwa をヲo/wo んンn が?ga ぎァgi ぐィgu げゥge ごェgo ざォza じカzi/ji ずキzu ぜクze ぞケzo だコda ぢサji/di づジzu/du でズde どゼdo ばッba びテbi ぶドbu べヌbe ぼハbo ぱツpa ぴデpi ぷナpu ぺネpe ぽバpo きゃ?ブ kya きゅ?ヘ kyu きょ?ペ kyo しゃオブ sya しゅオヘ syu しょオペ syo ちゃゴブ cya ちゅゴヘ cyu ちょゴペ cyo にゃゾブ nya にゅゾヘ nyu にょゾペ nyo ひゃヅブ hya ひゅヅヘ hyu ひょヅペ hyo みゃヒブ mya みゅヒヘ myu みょヒペ myo りゃポブ rya りゅポヘ ryu りょポペ ryo ぎゃァブ gya ぎゅァヘ gyu ぎょァペ gyo じゃカブ zya/ja じゅカヘ yu/ju じょカペzyo/jo びゃテブ bya びゅテヘ byu びょテペ byo ぴゃデブ pya ぴゅデヘ pyu ぴょデペ pyo 说明: * 拨音(ん/シ)用“n”表示。如:新聞(しんぶん)sinbun、民族(みんぞく)minzoku。 * 促音(小つ)将后面的子音重写两个来表示。如:国家(こっか)kokka、雑誌(ざっし)zasshi。但在つ的前面则加“t”来表示,如:発着(はっちゃく)hatchaku。(但在输入时仍应输入hacchaku)* ぢ/サ其读音为ji,但在输入时应该输入di。而づ/ジ的读音虽为zu,但在输入时应该输入du。 * 要输入し/オ时可以输入si或shi。要输入じ/カ可以输入ji或zi。 * は在作助词用时,读作wa,但输入仍为ha。を/ヲ的读音为o,但输入时为wo。

淘淘商城的第一天笔记

淘淘商城的第一天 1课程计划 一共14天课程 1、第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。 2、第二天:框架的整合。后台管理商品列表的实现。分页插件。 3、第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。 4、第四天:商品规格的实现。 5、第五天:商城前台系统的搭建。首页商品分类的展示。Jsonp。 6、第六天:cms系统的实现。前台大广告位的展示。 7、第七天:cms系统添加缓存。Redis。缓存同步。 8、第八天:搜索功能的实现。使用solr实现搜索。 9、第九天:商品详情页面的展示。 10、第十天:单点登录系统。Session共享。 11、第十一天:购物车订单系统的实现。 12、第十二天:nginx。反向代理工具。 13、第十三天:redis集群的搭建、solr集群的搭建。系统的部署。 14、项目总结。 今天的内容: 1、电商行业的背景。 2、淘淘商城的介绍。 3、工程项目的搭建。 4、Svn的使用。 2电商行业介绍 2.1 电商行业发展 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。 中国电子商务研究中心数据显示,截止到2012年底,中国电子商务市场交易规模达7.85万亿人民币,同比增长30.83%。其中,B2B电子商务交易额达6.25万亿,同比增长27%。而2011年全年,中国电子商务市场交易额达6万亿人民币,同比增长33%,占GDP比重上

普通心理学_彭聃龄_超详细笔记

普 通 心 理 学 彭聃龄

第二编人的信息加工 第三章感觉 第一节感觉的一般概念 一、什么是感觉 ?感觉(sensation)是人脑对事物的个别属性的认识。感觉提供了内外环境的信息,保证了机体与环境的信息平衡,是一切较高级、较复杂的心理现象的基础。 ?感觉剥夺实验 ?外部感觉接受外部世界的刺激,如视觉、听觉、嗅觉、味觉、肤觉等。其中视觉、听觉、嗅觉接受远距离的刺激,又叫距离感觉。内部感觉接受机体内部的刺激(机体自身的运动与状态),因而又叫机体觉,如运动觉、平衡觉、内脏觉等。 二、近刺激和远刺激 ?远刺激是指来自物体本身的刺激,因而不会有太大的变化。如一定波长的光线。近刺激是指直接作用于感觉器官的刺激,它每时每刻都在变化。如物体在视网膜上的投影等。 三、感觉的编码 ?感觉编码(sensory encode)是指将刺激的能量转化为神经系统能够接受的神经能或神经冲动。 ?光幻视(phosphenes) ?19世纪德国著名生理学家缪勒(Johannes Muller)最早研究了感觉编码问题,并提出了神经特殊能量学说(theory of specific nerve energy)。认为各种感觉神经具有自己的能,他们在性质上是互相区别的。缪勒的学说有其合理的地方能不能说明感官分化的真正原因。 ?当代两种有代表性的感觉编码理论:①特异化理论(specificity theory)认为,不同性质的感觉是由不同的神经元来传递信息的。②模式理论(pattern theory)或模块理论(module theory)认为,编码是由整组的激活模式引起的。近年来的研究发现,在不同的感觉系统中,神经系统同时采用了特异性编码和模式编码。四、刺激强度与感觉大小的关系——感受性和感觉阈限 ?感觉是由刺激物直接作用于某种感官引起的。但是,人的感官只对一定范围内的刺激做出反应。这个刺激范围及相应的感觉能力,我们称之为感觉阈限(sensory threshold)和感受性(sensitivity)。 ?刚刚能引起感觉的最小刺激量,叫做绝对感觉阈限(absolute sensory threshold); 而人的感官觉察这种微弱刺激的能力,叫绝对感受性(absolute sensitivity)。 两者在数值上成反比例。 E=1/R (E代表绝对感受性,R代表绝对感受阈限)。 阈限值不是绝对不变的。 ?刚刚能引起差别感觉的刺激物间的最小差异量,叫差别阈限(difference threshold)或最小可觉差(just noticeable difference,简称JND)。对这一最小差异量的感觉能力,叫差别感受性(difference sensitivity)。差别感受性与差别阈限在数值上也成反比例。德国生理学家韦伯(Weber)得出公式: K=△I/I (P.97)韦伯定律,韦伯分数越小,感觉越敏锐。虽然揭示了某些规律,但只适用于刺激的中等强度。 ?费西纳发现,感觉的大小(或感觉量)是刺激强度(或刺激量)的对数函数(对数定律)。史蒂文斯认为,心理量并不随刺激量的对数的上升而上升,而是刺激量的幂函数(幂定律)。

SpringBoot学习笔记

10分钟创建一个SB应用: 1.创建项目 2将springboot的版本改为1.5.6(不修改后面操作数据库会报类找不到) 1.5.6.RELEASE 3.pom.xml中配置3个数据库相关的内容 4.在入口文件增加注解(不注解会导致mapper识别不到): @MapperScan("com.example.demo.mapper") 5.创建generator/generatorConfig.xml文件,并修改数据库账号密码、包名、表名 6.修改application.yml,增加数据源相关的配置 7.创建一个maven的Run配置,设置mybatis-generator:generate -e 8.编写Service接口和Service实现类 9.编写Controller和方法 10.启动应用 创建项目 https://https://www.sodocs.net/doc/de14457836.html,/lom9357bye/article/details/69677120 通过tomcat部署项目 https://https://www.sodocs.net/doc/de14457836.html,/PJH-Forever/p/8026330.html spring boot configuration annotation proessor not found in classpath 引入如下依赖: org.springframework.boot spring-boot-configuration-processor true pom.xml中的parent 只有parent设置了,后面的才不用写version;没有在parent中设置的,后面必须写version,否则只会下载一个unknown的错误包 一些tips: spring boot 2.0相比1.5.x,变更比较大,一些类去除了,因此要注意不同版本的api 如果在generatorConfig.xml中配置了某个表,但是没有用到,那么程序起来的时候会报错;删除即可 Durid包含的主要功能:

教育知识与能力超详细笔记及重点

教育知识与能力 教育基础知识和基本原理 第一章教育的产生与发展 一.教育的概念(辨析题) 教育有广义和狭义之分。 广义的教育泛指一切增进人的知识和技能、发展人的智力和体力、影响人的思想和品德的活动。它包括社会教育、学校教育和家庭教育。 狭义的教育主要指学校教育,是教育者根据一定的社会要求,有目的、有计划、有组织地对受教育者施加影响,把他们培养成一定社会所需要的人的活动。 *“教育”一词最早源于《孟子·尽心上》。孟子最早把教和育连用。 二.教育构成要素 (一)教育者(主导) (二)受教育者(主体) (三)教育影响(桥梁中介) 三.教育的属性(辨析题) (一)教育的本质属性 教育是一种有目的地培养人的社会活动,这是教育区别于其他事物现象的根本特征,是教育的质的规定性。 (二)教育的社会属性 1.教育具有永恒性 2.教育具有历史性(古今不同) 3.教育具有相对独立性 (1)历史继承性(古今相同) (2)受其他社会意识形态的影响 (3)与社会政治经济发展不平衡 四.教育起源和发展 (一)教育的起源 (二)教育的发展历程 1.原始形态的教育 原始社会的教育具有如下特征:(1)无阶级性、公平性。(2)教育与生产劳动、社会生活融合在一起。(3)教育内容简单,教育方法单 2.古代社会的教育

(1)奴隶社会教育 (2)封建社会教育 *隋唐时期科举制兴起,清朝时期废除科举制(1905年)。 (3)古代学校教育的基本特征是: a.古代产生了学校,教育成为社会专门职能,是统治阶级的工具。 b.古代学校教育与生产劳动相脱离,具有非生产性。 c.古代学校教育适应古代经济与政治的发展,具有阶级性;封建社会的学校还具有等级性。 d.古代学校教育适应古代思想文化的发展,表现出道统性、专制性、刻板性和象征性。 e.古代学校教育初步发展。尚未形成复杂的结构体系。 3.近代社会的教育(简单题) (1)国家加强了对教育的重视和干预,公立教育崛起。

日语日语学习笔记超有用

日语学习须知 日语里格助词的的“格”是指体言在句子中所处的位置,换句话说,“格”是资格,是指体言以什么资格来参加句子的构成及同其他词的关系,表示格的助词就是格助词,主要接在体言和相当于体言词的后面,表示与句子的语法关系。格助词有が、に、を、で、と、より、から、の、へ等九个,体言+格助词可以构成主语、连用修饰语和连体修饰语等句子成分。 日语里的格助词是日语语言中较难掌握的语法之一,对于每一个日语的初学者可能都会像我一样为此苦恼不已过,现在将《日本語の格助詞の例解》一书的学习笔记整理如下,希望能对初学日语朋友们有所帮助,我在咖啡日语受益不少,也算是小小的回报吧,希望大家一起努力学好日语。输入这点东西花了我大半个月的时间,每日有时间就输入一点,为了方便初学的同学,多花了两天将每句中的格助词标出,可是上传在帖子中却显示不出,所以再将WORD格式的文本附上,需要的可下载。 一、格助词が 主要接体言、体言性词组 桜の花が咲く。 みんな出かけて、私だけが家にいた。 <用法1>表示主语。包括动作的主体、状态及性质的主体、存在物 一九八〇年代の初め、この地球上で、一年に、千四百万人もの五歳未満の子供たちが死んでいました。 飢え、衛生状態が悪いこと。 1.(自然)描写文中所出现的客观事物的主体 春が来ました。青い草があっちこっちに生えます。森の中で、美しい小鳥が鳴きます。白い喋々や黄色い喋々が赤い薔薇の花の上を飛ぶ回ります。可愛い燕が南から来ます。焼ける問うな暑い日が毎日続きます。騒がしい蝉が鳴きます。小さな三毛が軒下で昼寝をします。地平線に消え入る長い道路には、人影は一人を見えません。 2.定语中的主语

mybatis中文版教程

MyBatis Spring1.0.0-RC3 参考文档 MyBatis 社区(https://www.sodocs.net/doc/de14457836.html,) Copyright ? 2010 本文档的拷贝仅允许您个人使用或分发给其他用户,但是不能收取任何费用,后期的发布无论是印刷版或电子版,也会进行版权声明。 本文档由南磊(nanlei1987@https://www.sodocs.net/doc/de14457836.html,)翻译

目录 第一章介绍 (3) 1.1 整合动机 (3) 1.2 要求 (3) 1.3 感谢 (3) 第二章入门 (4) 2.1 安装 (4) 2.2 快速创建 (4) 第三章SqlSessionFactoryBean (6) 3.1 创建 (6) 3.2 属性 (6) 第四章事务 (8) 4.1 标准配置 (8) 4.2 容器管理事务 (8) 第五章使用SqlSession (9) 5.1 SqlSessionSupport (9) 5.2 SqlSessionTemplate (9) 第六章MapperFactoryBean (11) 6.1 创建 (11) 6.2 注入映射器 (11) 6.3 自动配置 (12) 第七章使用MyBatis API (13) 第八章示例代码 (14)

第一章介绍 1.1 整合动机 正如第二版,Spring仅支持iBatis2。那么我们就想将MyBatis3的支持加入到Spring3.0(参考Spring的Jira的问题)中。不幸的是,Spring 3.0的开发在MyBatis 3.0官方发布前就结束了。因为Spring开发团队不想发布一个基于非发行版的MyBatis的整合支持,那么Spring 官方的支持就不得不等到至少3.1版本了。要在Spring中支持MyBatis,MyBatis社区认为现在应该是自己团结贡献者和有兴趣的人一起来开始进行Spring和MyBatis整合的时候了。 这个小类库就来创建丢失的粘贴Spring和MyBtatis这两个流行框架的胶水。减少用户不得不来配置MyBatis和Spring 3.X上下文环境的样板和冗余代码。它还透明地增加了Spring 对MyBatis事务的支持。 1.2 要求 在开始阅读本手册之前,很重要的一点是你要熟悉Spring和MyBatis这两个框架还有和它们有关的术语,本手册不会提供二者的背景内容,基本安装和配置教程。 和MyBatis一样,MyBatis-Spring也需要Java 5或更高版本。 1.3 感谢 非常感谢那些使得本项目成为现实的人们(按字母顺序排序)。Eduardo Macarron,Hunter Presnall和Putthibong Boonbong的编码工作,测试和文档修改;Andrius Juozapaitis,Giovanni Cuccu,Raj Nagappan和Tomas Pinos的贡献;而Simone Tripodi发现了这些人并把他们带入项目之中。没有他们的努力,这个项目是不可能存在的。

超详细日语笔记解析

1. 日语假名及其发音一览 平片罗平片罗平片罗平片罗平片罗 假假马假假马假假马假假马假假马 音音音音音 ______________________________________________________________________________ あア a いイi うウu えエ e おオo かカka きキki くクku けケke こコko さサsa しシsi/shi すスsu せセse そソso たタta ちチchi つツtsu てテte とトto なナna にニni ぬヌnu ねネne のノno はハha ひヒhi ふフfu へヘhe ほホho まマma みミmi むムmu めメme もモmo やヤya ゆユyu よヨyo らラra りリri るルru れレre ろロro わワwa をヲ o/wo んンn がガga ぎギgi ぐグgu げゲge ごゴgo ざザza じジzi/ji ずズzu ぜゼze ぞゾzo だダda ぢヂji/di づヅzu/du でデde どドdo ばバba びビbi ぶブbu べベbe ぼボbo ぱパpa ぴピpi ぷプpu ぺペpe ぽポpo きゃキャkya きゅキュkyu きょキョkyo しゃシャsya しゅシュsyu しょショsyo ちゃチャcya ちゅチュcyu ちょチョcyo にゃニャnya にゅニュnyu にょニョnyo ひゃヒャhya ひゅヒュhyu ひょヒョhyo みゃミャmya みゅミュmyu みょミョmyo りゃリャrya りゅリュryu りょリョryo ぎゃギャgya ぎゅギュgyu ぎょギョgyo じゃジャzya/ja じゅジュyu/ju じょジョzyo/jo びゃビャbya びゅビュbyu びょビョ

黑马程序员mybatis教程第二天:延迟加载

延迟加载 什么是延迟加载 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 使用association实现延迟加载 需求 查询订单并且关联查询用户信息 mapper.xml 需要定义两个mapper的方法对应的statement。 1、只查询订单信息 SELECT * FROM orders 在查询订单的statement中使用association去延迟加载(执行)下边的satatement(关联查询用户信息) 2、关联查询用户信息 通过上边查询到的订单信息中user_id去关联查询用户信息

使用UserMapper.xml中的findUserById 上边先去执行findOrdersUserLazyLoading,当需要去查询用户的时候再去执行findUserById,通过resultMap的定义将延迟加载执行配置起来。 延迟加载resultMap 使用association中的select指定延迟加载去执行的statement的id。

日语语法大全整理笔记

日语语法大全整理笔记 日语语法大全整理笔记日语基本读音平片罗平片罗平片罗平片罗平片罗假假马假假马假假马假假马假假马あアa いイi うウu えエe おオo かカka きキki くクku けケke こコko さサsa しシsi/shi すスsu せセse そソso たタta ちチchi つツtsu てテte とトto なナna にニni ぬヌnu ねネne のノno はハha ひヒhi ふフfu へヘhe ほホho まマma みミmi むムmu めメme もモmo やヤya ゆユyu よヨyo らラra りリri るルru れレre ろロro わワwa をヲo/wo んンn がガga ぎギgi ぐグgu げゲge ごゴgo ざザza じジzi/ji ずズzu ぜゼze ぞゾzo だダda ぢヂji/di づヅzu/du でデde どドdo ばバba びビbi ぶブbu べベbe ぼボbo ぱパpa ぴピpi ぷプpu ぺペpe ぽポpo きゃキャkya きゅキュkyu きょキョkyo しゃシャsya しゅシュsyu しょショsyo ちゃチャcya ちゅチュcyu ちょチョcyo にゃニャnya にゅニュnyu にょニョnyo ひゃヒャhya ひゅヒュhyu ひょヒョhyo みゃミャmya みゅミュmyu みょミョmyo りゃリャrya りゅリュryu りょリョryo ぎゃギャgya ぎゅギュgyu ぎょギョgyo じゃジャzya/ja じゅジュyu/ju じょジョzyo/jo びゃビャbya びゅビュbyu びょビョbyo ぴゃピャpya ぴゅピュpyu ぴょピョ

pyo 说明:* 拨音(ん/ツ)用“n”表示。如:新聞(しんぶん)sinbun、民族(みんぞく)minzoku。* 促音(小つ)将后面的子音重写两个来表示。如:国家(こっか)kokka、雑誌(ざっし)zasshi。但在つ的前面则加“t”来表示,如:発着(はっちゃく)hatchaku(在输入时仍应输入hacchaku)* ぢ/ヂ其读音为ji,但在输入时应该输入di。而づ/ヅ的读音虽为zu,但在输入时应该输入du。* 要输入し/シ时可以输入si或shi。要输入じ/ジ可以输入ji或zi。* は在作助词用时,读作wa,但输入仍为ha。を/ヲ的读音为o,但输入时为wo。常识1.外来语外来语是指在日本的国语中使用的来源于外国语言的词汇。但狭义上的外来语则是指来源于欧美国家语言的词汇,其中大部分是来源于英美语系的词汇。日语中的汉语词汇很多,大多是自古以来从中国引进的,从外来语的定义看,汉语词汇也应该属于外来语的一种。但是,从惯用的角度看,汉语词汇不包括在外来语中。较早引进的外来语,有些已经完全融入到日语中,几乎已经没有了来自外国语的感觉。这一类词汇历史上多采用平假名或者汉字来书写,现在一般用平假名来书写。已经日本语化、但仍然有来自外国语的感觉的词汇,一般用片假名书写。这一类词汇的词形比较固定。明显地带有来自外国语的感觉的词汇,用片假名书写。这一类词汇往往词形(即写法)不大固定,但部分有习惯写法的一般按照习惯写法来书写。这类词汇可能会使用现代日语中的和语词汇和汉语词汇所没有的音节来进行书写。这些特殊的音节假名用于书写比较接近原音或原拼写方法的外来语、外国地名和人名等。这些特殊音节假名包括:イェ

mybatis教程从入门到精通

mybatis教程从入门到精通 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到sessionfactory. 2. 由sessionfactory 产生session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为MyBaits 的dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将mybatis- 3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到web工程的lib 目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是utf-8 编码 创建用户表,并插入一条测试数据 程序代码程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为src_user,test_src, 用如下方式建立,鼠标右键点击JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下:

基于Spring MVC和Mybatis的云笔记毕业论文

基于Spring MVC和Mybatis的云笔记毕业论文 目录 摘要................................................................... I Abstract .................................................................. II 第1章绪论 (1) 1.1 开发背景与现状 (1) 1.2 开发本系统意义 (1) 1.3 课题研究的主要容 (1) 第2章核心技术与理论体系 (2) 2.1 Spring MVC概述 (2) 2.2 Servlet与JSP (3) 2.2.1 Servlet概述 (3) 2.2.2 JSP概述 (3) 2.3 环境要求 (3) 2.3.1 硬件环境 (3) 2.3.2 软件环境 (4) 第3章系统功能模块分析 (5) 3.1 系统总体设计 (5) 3.2 系统模块设计 (6) 3.2.1 登录模块 (6) 3.2.2笔记本模块 (6) 3.2.3笔记模块 (7) 3.2.4 音乐播放器模块 (7) 第4章数据库设计与说明 (8) 4.1 数据库的设计 (8) 4.1.1 用户基本信息表 (8) 4.1.2 笔记本信息表 (8) 4.1.3 笔记信息表 (9) 4.1.4 收藏信息表 (10) 4.1.5分享笔记信息表 (10) 4.2 数据库各个表之间的联系 (11)

第5章界面设计 (12) 5.1 登录模块界面设计 (12) 5.1.1 登录界面 (12) 5.1.2 注册界面 (12) 5.1.3 修改密码界面 (13) 5.2 主要功能模块 (13) 5.2.1 主界面 (13) 5.2.2 笔记本界面 (14) 5.2.3 笔记界面 (14) 5.2.4 音乐播放器界面 (15) 第6章功能模块实现 (16) 6.1 后台服务器的搭建 (16) 6.1.1 搭建总述 (16) 6.1.2 配置applicationContext.xml文件 (16) 6.2 登录模块 (17) 6.2.1 用户注册 (17) 6.2.2 用户登录 (19) 6.2.3 修改密码 (20) 6.2.4 退出登录 (20) 6.3 笔记本模块 (20) 6.3.1 加载笔记本列表 (20) 6.3.2 笔记本重命名 (20) 6.3.3 新建笔记本 (21) 6.3.4 删除笔记本 (21) 6.4 笔记模块 (21) 6.4.1 加载笔记列表 (21) 6.4.2 新建笔记 (21) 6.4.3 修改及加载笔记信息 (22) 6.4.4 笔记的删除、移动与分享 (22) 6.4.5 笔记的收藏 (22) 6.5 音乐播放器模块 (23) 6.5.1 播放器功能 (23) 6.5.2 上一曲、下一曲的实现 (23) 结论 (24) 致谢 (25)

日语翻译笔记

翻訳ノート 汗马之劳:汗馬の労かんばのろう 孤城落日:孤城落日こじょうらくじつ四面楚歌:四面楚歌しめんそか 执牛耳:牛耳を執るぎゅうじをとる成为盟主,党派首领 虎视眈眈:虎視眈々こしたんたん 大器晚成:大器晩成たいきばんせい 千差万别:千差万別せんさばんべつ 一目了然:一目瞭然いちもくりょうぜん起死回生:起死回生きしかいせい 画龙点睛:画龍点睛がりゅうてんせい半信半疑:半信半疑はんしんはんぎ 彻头彻尾:徹頭徹尾てっとうてつび 一触即发:一触即発いっしょくそくはつ神出鬼没:神出鬼没しんしゅつきぼつ旁若无人:傍若無人ぼうじゃくぶじん大同小异:大同小異だいどうしょうい自由自在:自由自在じゆうじざい 不即不离:不即不離ふそくふり 一日三秋:一日三秋いちにちさんしゅう一举两得:一挙両得いっきょりょうとく一网打尽:一網打尽いちもうだじん 百花齐放:百花斉放ひゃっかせいほう百家争鸣:百家争鳴ひゃっかそうめい弱肉强食:弱肉強食じゃくにくきょうしょく 百战百胜:百戦百勝ひゃくせんひゃくしょう 单刀直入:単刀直入たんとうちょくにゅう 粗制滥造:粗製乱造そせいらんぞう 天衣无缝:天衣無縫てんいむほう①诗歌等写得自然而优美②天真烂漫 同床异梦:同床異夢どうしょういむ 马耳东风:馬耳東風ばじとうふう耳旁风 卧薪尝胆:臥薪嘗胆がしんしょうたん温故知新:温故知新おんこちしん 吴越同舟:呉越同舟ごえつどうしゅう彼此关系不好的人处于同一场所或共同行动 切磋琢磨:切磋琢磨せっさたくま 龙头蛇尾:竜頭蛇尾りゅうとうだび不共戴天:不倶戴天ふぐたいてん 隔靴搔痒、远水解不了近渴:隔靴掻痒(かっかそうよう)、二階から目薬をさす 天壤之别:天地の差、月とすっぽん、雲泥の差 五十步笑百步:五十歩百歩の違い(ごじっぽひゃっぽ)、五十歩百歩、目糞鼻糞を笑う 虎头蛇尾:竜頭蛇尾(りゅうとうだび)、頭でっかち尻つぼみ 废寝忘食:寝食を忘れる、寝ず食わず 画龙不点睛:画龍点睛を欠く、仏作って魂入れず(仏作ってたましいいれず) 敬而远之:敬遠けいえん 画蛇添足:蛇足だそく 杞人忧天:杞憂きゆう 三头六臂:八面六臂はちめんろっぴ 晴天霹雳:晴天の霹靂せいてんのへきれき 支离破碎:支離滅裂しりめつれつ 薄利多销:薄利多売はくりたばい 良药苦口:良薬は口に苦し 归心似箭:帰心矢の如し 洛阳纸贵:洛陽の紙価を高めるらくようのしか 喜出望外:望外の喜び 势如破竹:破竹の勢いはちく 远亲不如近邻:遠い親戚より近い他人 如堕五里雾中:五里霧中ごりむちゅう有其父必有其子:この親にしてこの子あり颐指气使:頤で人を使うあご 家常便饭:日常茶飯事さはんじ 背水一战:背水の陣はいすいのじん 防患于未然:災いを未然に防ぐ 藏头露尾:頭隠す尻隠さず 入乡随俗:郷に入っては郷を従えごうにいって 如鱼得水:魚が水を得たよう 胯下之辱:韓信のまたくぐり 刎颈之交:刎頸の交わりふんけいのまじわり 欲速则不达:急がば廻れ 百闻不如一见:百聞は一見に如かずひゃくぶん

mybatis-3-mapper

>

相关主题