当前位置: 首页 > news >正文

描述个人网站的建站过程济南网站建设咨询电话

描述个人网站的建站过程,济南网站建设咨询电话,广西建设厅网站招 标 信 息,南京网站建设开发公司从昨天开始对mybatis突然有了很深的兴趣#xff0c;主要原因在于这几天的项目采用的是smm#xff0c;以后使用mybatis的概率也是非常大#xff0c;抱着一劳永逸的想法#xff0c;选了这几天的黄道吉日就把mybatis给办了吧。笔记主要参考mybatis的官网#xff0c;在此给出链…  从昨天开始对mybatis突然有了很深的兴趣主要原因在于这几天的项目采用的是smm以后使用mybatis的概率也是非常大抱着一劳永逸的想法选了这几天的黄道吉日就把mybatis给办了吧。笔记主要参考mybatis的官网在此给出链接以防忘记http://www.mybatis.org/mybatis-3/zh/getting-started.html. 一、maven依赖   maven中使用mybatis十分简单只需要指定依赖即可可以省去很多麻烦。maven是十分方便且简单的代码管理工具可以省去很多找资源的时间想起之前为了搭建ssh框架四处找依赖包心疼自己一秒。比学习更重要的是眼界使用一些有用的工具可以是开发效率事半功倍以此为戒 1 dependency 2 groupIdorg.mybatis/groupId 3 artifactIdmybatis/artifactId 4 versionx.x.x/version 5 /dependency mybatis依赖包   二、构造SqlSessionFactory 每个基于mybatis的应用都是以一个SqlSessionFactory的实例为中心的。通过SqlSessionFactory可以构造出Session通过Session可以与后端数据库进行交互因此SqlSessionFactory是业务逻辑与后端数据库进行沟通的关键桥梁。Session的生命周期较短并且不安全因此每个线程都应该有自己的SqlSession实例。SqlSssion的最佳作用域是请求或方法作用域。而SqlSessionFactory对于每次请求都要建立一个Sqlsession因此SqlSessionFactory的生命周期应为应用的生命周期。SqlSessionFactory贯穿这个应用因此构造SqlSessionFactory是一个关键所在。mybatis提供了两种构造途径。 1、通过xml构造SqlSessionFactory推荐 对于SqlSessionFactory的相关配置可以定义在mybatis-config.xml中通过输入流inputStream可以读取文件中的内容。SqlSessionFactoryBuilder拥有一个静态方法build接收一个输入流并返回SqlSessionFactory。至此SqlSessionFactoryBuilder完成任务一般情况下SqlSessionFactoryBuilder只出现少数几次。 //mybatis-config.xml的一般配置?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver value${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment/environmentsmappersmapper resourceorg/mybatis/example/BlogMapper.xml//mappers /configuration   1 String resource org/mybatis/example/mybatis-config.xml; 2 InputStream inputStream Resources.getResourceAsStream(resource); 3 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);  2、通过Java代码构建SqlSessionFactory较少使用 对于上面mybatis-config.xml文件中的配置java都提供了相对于的类用于SqlSessionFactory的配置。很容易可以猜到一个标签对应一个类标签的包含关系对应于类的依赖关系。因此使用到的类主要有ConfigurationEnvironmentTransactionFactoryMapper以及DataSource。代码如下 1 DataSource dataSource BlogDataSourceFactory.getBlogDataSource(); 2 TransactionFactory transactionFactory new JdbcTransactionFactory(); 3 Environment environment new Environment(development, transactionFactory, dataSource); 4 Configuration configuration new Configuration(environment); 5 configuration.addMapper(BlogMapper.class); 6 SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(configuration);     三、SqlSession与Mapper 1、获取SqlSession。Sqlsession可以通过前面构建的SqlSessionFactory获得调用openSession返回一个SqlSession类 SqlSession session sqlSessionFactory.openSession(); try {Blog blog (Blog) session.selectOne(org.mybatis.example.BlogMapper.selectBlog, 101); } finally {session.close(); }   2、Mapper是Service层调用Dao层的接口Mapper只是定义了一系列Service提供服务需要使用的接口不参与接口的实现Mapper接口的实现主要使用了mybatis的SQL功能在mapper.xml中动态定义一些需要使用的SQL语句并执行。Mapper类有SqlSession获得并完成对数据库的一次操作具体如下 SqlSession session sqlSessionFactory.openSession(); try {BlogMapper mapper session.getMapper(BlogMapper.class);Blog blog mapper.selectBlog(101); } finally {session.close(); }   下面附上一个Mapper的简单例子BlogMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespaceorg.mybatis.example.BlogMapperselect idselectBlog resultTypeBlogselect * from Blog where id #{id}/select /mapper   3、作用域及生命周期 类的作用域与生命周期取决于类在应用的发挥的作用 3.1、SqlSessionFactoryBuilder这个类可以被实例化主要是为了通过配置构造SqlSessionFactory类之后便没有什么作用。故生命周期应为方法作用域只调用一次或少数几次方法完成后自动销毁。 3.2、SqlSessionFactory这个类在应用运行期间为每次请求分配一个Sqlsession进行处理因为客户端请求在应用运行周期内都可能发生故该类的生命周期应为应用的生命周期。一般来说一个应用中值含有一个SqlSessionFactory。 3.3、SqlSession这个类主要在一次请求中构造各个相关的Mapper来为请求服务因此该类的生命周期为一次请求或者方法作用域。并且该类线程不安全因此不能被共享当请求完成响应该类的一次实例的任务也便完成故而应该关闭减少数据库的开销。 3.4、Mapper该类从SqlSession类中获得为SqlSession类服务故该类的生命周期不应大于SqlSession类的生命周期一般Mapper放在方法作用域中在调用它的方法中执行方法结束便自动销毁。   四、XML映射配置文件 mybatis使用配置管理应用是的配置信息与代码分开便于修改以及扩展十分方便。虽然现在注解越来越盛行但xml配置的简单性全局性的优点也是注解无法取代的。 mybatis-config.xml是mybatis的主要配置文件配置项很多但真正用到的却不多。官网下列出的配置项主要有如下几个 1、configuration 配置 1.1 properties 1.2 settings 1.3 typeAliases 1.4 typeHandlers 1.5 objectFactory 1.6 plugins 1.7 environments 1.8 databaseIdProvider 1.9 mappers   2、properties 定义了一些可外部配置且动态替换的属性可以通过子元素的方式配置也可以引入外部的properties文件。这些属性在整个配置文件中可被用来替换需要动态配置的属性值类似于C语言中的宏主要是为了方便修改以及统一配置。 properties resourceorg/mybatis/example/config.propertiesproperty nameusername valuedev_user/property namepassword valueF2Fa3!33TYyg/ /properties dataSource typePOOLEDproperty namedriver value${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}/ /dataSource    值得注意的是properties元素中指定的属性优先级最低。Mybatis中properties的加载顺序如下 在 properties 元素体内指定的属性首先被读取。然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件并覆盖已读取的同名属性。 最后读取作为方法参数传递的属性并覆盖已读取的同名属性。    同时在属性没有找到想要的属性值时可以指定一个默认的属性值默认冒号后面为默认值需要打开一个属性值并可以使用该特征 properties resourceorg/mybatis/example/config.properties!-- ... --property nameorg.apache.ibatis.parsing.PropertyParser.enable-default-value valuetrue/ !-- Enable this feature -- /properties      3、settings 该表现在的设置为mybatis的全局设置可以改变mybatis的运行时行为下面粘上经常使用的配置项其他可以根据需要到官网查找 settingssetting namecacheEnabled valuetrue/setting namelazyLoadingEnabled valuetrue/setting namemultipleResultSetsEnabled valuetrue/setting nameuseColumnLabel valuetrue/setting nameuseGeneratedKeys valuefalse/setting nameautoMappingBehavior valuePARTIAL/setting nameautoMappingUnknownColumnBehavior valueWARNING/setting namedefaultExecutorType valueSIMPLE/setting namedefaultStatementTimeout value25/setting namedefaultFetchSize value100/setting namesafeRowBoundsEnabled valuefalse/setting namemapUnderscoreToCamelCase valuefalse/setting namelocalCacheScope valueSESSION/setting namejdbcTypeForNull valueOTHER/setting namelazyLoadTriggerMethods valueequals,clone,hashCode,toString/ /settings     4、typeAliases 从名字可以知道该标签配置的是Java类型别名主要作用是减少类完全限定名的冗余对于常用的类名进行配置可以带来很多方便特别是在mapper.xml中时。下面附上一个使用的实例 typeAliasestypeAlias aliasAuthor typedomain.blog.Author/typeAlias aliasBlog typedomain.blog.Blog/typeAlias aliasComment typedomain.blog.Comment/typeAlias aliasPost typedomain.blog.Post/typeAlias aliasSection typedomain.blog.Section/typeAlias aliasTag typedomain.blog.Tag/ package namedomain.blog/ /typeAliases   配置上包名时可以在类的上方使用Alias“别名”注解添加别名否则会使用类的首字母小写的非限定类名作为别名eg Alias(author) public class Author {... }     5、mappers 该标签主要用于告诉mybatis去哪里寻找匹配的sql语句通常使用类路径的资源引用或者完全限定资源定位符或者类名及包名等。下面附上两种常用的方式 mappersmapper resourceorg/mybatis/builder/AuthorMapper.xml/mapper resourceorg/mybatis/builder/BlogMapper.xml/mapper resourceorg/mybatis/builder/PostMapper.xml/ /mappers     !-- 将包内的映射器接口实现全部注册为映射器 -- mapperspackage nameorg.mybatis.builder/ /mappers     6.environment mybatis可以配置多种环境有助于将SQL映射应用于多种数据库中。在mybatis-config.xml中可以配置多个environment但是构造SqlSessionFactory时只能指定一种环境可以通过SqlSessionFactory的构造函数传入使用的environment否则使用默认的environment SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, environment); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, environment, properties); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader); SqlSessionFactory factory new SqlSessionFactoryBuilder().build(reader, properties);   下面附上environments的一个实例 environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBCproperty name... value...//transactionManagerdataSource typePOOLEDproperty namedriver value${driver}/property nameurl value${url}/property nameusername value${username}/property namepassword value${password}//dataSource/environment /environments  转载于:https://www.cnblogs.com/hi-dongshen/p/9863274.html
http://www.yutouwan.com/news/257339/

相关文章:

  • 网站开发记科目建设网站的英语怎么说
  • 电子商务类网站2008服务器网站
  • 赣州建设网站公司世界互联网峰会时间
  • 北京网站建设是什么大数据培训课程
  • 网站制作一般需要多少钱?企业网站优化服务商
  • 一个微信可以做两个网站支付宝吗海尔集团企业网站建设分析
  • 个人建网站首选什么域名好wordpress地址和找点地址
  • 海兴县网站建设公司软件工程大学排名
  • 做外贸网站公司哪家好seo视频教程
  • 佛山网站提升排名长沙手机网站建设公司
  • wordpress网站欣赏百度收录好最快的网站
  • 网站建设公司话术宁德市人社局
  • 服务器做多个网站中国建筑网址
  • 壁纸网站模板临沧网站建设ynyue
  • 购物网站怎么做SEO做游戏小网站是啥
  • 网站建设二级分销网站开发部门工资会计分录
  • 海丰建设局网站营销网站开发规划
  • 云南seo简单整站优化怎么在阿里云上做网站
  • 设计师可以做兼职的网站有哪些辽宁建设工程信息网直接发包工程
  • 深圳网站建设公司服务电子科技学校网站建设
  • godaddy 网站上传小公司做网站需要
  • 万州区建设局官方网站上传的网站怎么打开
  • 徐州建设工程交易网站找人做建筑施工的网站
  • php网站开发实例教程案例建筑网站设计模版
  • 中文域名可以做网站吗wordpress 文本小工具栏
  • 贵州省网站建设网站ico图标放在哪里
  • 专门建立网站的公司吗做网站定制
  • 网站开发标书范本网站权重不稳定
  • 福建省建设质量安全协会网站厦门建设工程信息造价网站
  • 资深的教育行业网站开发抚州做网站的公司