MyBatis 根据表结构自动生成代码, domain, dao, mapper 文件

201137_5YmJ_167756 今天, 主要讲 generator 里面的东西; mysql的jar包是我自己贴过来的, 只要待会儿你能将路径指向它, 也没有问题; 第一步: 来看看 generator.xml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 数据库驱动包位置 -->
    <classPathEntry location="mysql-connector-java-5.1.11.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 数据库链接URL、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/space"
                        userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator targetPackage="net.ningmengcao.space.domain" targetProject="/Users/chenyuan/Workspaces/Github/ningnengcao-space/document/generator/src">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成的映射文件包名和位置 -->
        <sqlMapGenerator targetPackage="net.ningmengcao.space.mapper" targetProject="/Users/chenyuan/Workspaces/Github/ningnengcao-space/document/generator/src">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="net.ningmengcao.space.dao" targetProject="/Users/chenyuan/Workspaces/Github/ningnengcao-space/document/generator/src">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
        <table tableName="tweet" domainObjectName="Tweet" enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>
这里面要指定好jar包, 每个文件生成的路径, 还有表. 特别注意, table里面的那些false如果不写的话, 会生成很多我觉得不想要的, 如果你想看效果, 你自己可以全部去掉; 第二步: 很重要, 见证奇迹的时刻到了. 我们在”当前目录”, 就是 generator 目录下面, 执行一行生成语句;
1
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
然后就可以看见代码了, 看看图: 201842_e2ch_167756 OK, 就这些的, 一点都不难. 是吧~]]>

程序员的各种样子,经典

907a9793-0714-4fbd-906a-0969802f9600  

往运行服务器上直接上传文件时程序员的样子


d0e5efe3-e928-417c-b9d8-315340c461fd

当老板说项目如果能赶在最后期限前开发完成将会有一笔奖金时程序员的样子


2d086be5-aaf5-489e-ba32-60e0f3588a92

当凌晨3点还在修改bug时程序员的样子


4d32e300-3f32-4d53-84c3-1e670125bff2

当发现没有按CTRL-S就关闭了文件时程序员的样子


76a155c0-a83a-4ba2-8f2a-31a210f782cc

当使用正则表达式返回了想要的结果时程序员的样子


e8cc269a-60d5-408f-93ec-6af8d314dc1b

第一次使用CSS美化页面时的效果


66e7852c-3d9e-4f46-82f3-d237bfe3b11f

当所有人都在办公室挥汗如雨的加班而你却能安然的回家度周末时的样子


77a3696a-6a2e-491d-a368-75b875596c13

当老板想找一个人来修改这个严重bug时程序员的样子


f3b55c08-26ad-4703-a97a-12b943a0e051

当发现有东西上周五还好用而到了周一不好用了时程序员的样子


061890b8-b468-4ec1-b58d-f3f345e67e1d

当经过了数小时的努力后第一次运行开发出的脚本时程序员的样子


50f8714c-ebcb-43e4-a466-b7ec9b6038e6

当在没有使用谷歌搜索的情况下就找到了问题解决方案时程序员的样子


86fe185b-4a82-429d-b76c-6b860f76a789

做市场的那帮家伙告诉程序员他们是这样销售软件的

]]>

squid 上网代理服务器缓存加速设置

企业环境 公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化。 需求分析 提高用户访问速度,需要对squid服务器进行优化并且需要使用acl对访问行为进行相应限制。 解决方案 1、路由及NAT设置 设置网卡IP地址 eth0:192.168.8.188 netmask:255.255.255.0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 27212_1239091938opqo eth1:dhcp获取 vim /etc/sysconfig/network-scripts/ifcfg-eth1 27212_1239091942UKD6 27212_1239091950jO7A 开启内核路由功能 echo 1 > /proc/sys/net/ipv4/ip_forward 27212_1239091953Nmdh 配置iptables设定nat,即透明代理 iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-ports 3128 如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~ iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 保存iptables设置 service iptables save 27212_12390919557s14 2、修改selinux设置 setsebool -P squid_disable_trans on 27212_1239091957YutH 注意: 如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid不能启动哈~ 27212_1239091960dFlX 3、添加squid系统用户和组 [root@rhel5 ~]# groupadd squidadmin [root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin 27212_1239091965Kfhw 4、建立相应目录 [root@rhel5 ~]# mkdir /usr/local/squid [root@rhel5 ~]# mkdir /usr/local/squid/cache [root@rhel5 ~]# mkdir /usr/local/squid/var [root@rhel5 ~]# mkdir /usr/local/squid/var/logs 27212_1239091966NKMg 5、改变目录的所有者 为了保证服务正常启动并可以写入缓存、日志等信息,我们更改目录所有者为squidadmin哈~ [root@rhel5 ~]# chown -R squidadmin /usr/local/squid/cache [root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/cache [root@rhel5 ~]# chown -R squidadmin /usr/local/squid/var/logs [root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/var/logs 27212_12390919671Vt4 6、修改squid配置文件 vim /etc/squid/squid.conf 设置监听地址和端口 http_port 3128 transparent 红色部分是支持透明代理,这是squid新版本的改进 27212_1239091973bE3O 注意: 好多资料说透明代理设置为 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on 实际上透明代理只是在普通代理的基础上加上了http_port 3128 transparent及IPTABLES的端口转发功能,使用Iptables或者Ipchains实现,即把用户对外部www站点的访问转到Squid的端口上去,相对用用户来讲是“透明”的,不需在浏览器中指明代理服务器的IP和端口。 而对于反向代理来说,从squid2.6开始squid.conf已经没有httpd_accel字段了哈~Squid 2.6与3.0一样哈~相对于2.5的accel模式下配置要简单许多,只要设置不同的后端,cache_peer parent originserver就可以进行反向代理,而不再需要httpd_accel系列参数的配置.配置squid时最好制定内部dns,或者修改/etc/hosts文件,否则squid可能会回环访问其自身而出现问题哈~ udp_incoming_address 0.0.0.0 27212_12390919780Z3U 设置squid内存大小及cahce目录 cache_mem 512 MB 27212_12390919887bR2 cache_dir ufs /usr/local/squid/cache 10240 16 256 27212_1239092001nMMW 设置日志文件和pid文件位置 access_log /usr/local/squid/var/logs/access.log cache_log /usr/local/squid/var/logs/cache.log cache_store_log none 27212_1239092005O9Z9 emulate_httpd_log on 使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数 27212_1239092013zCJk pid_filename /usr/local/squid/var/logs/squid.pid 27212_1239092019c1Up 配置访问控制 acl all src 0.0.0.0/0.0.0.0 acl mynet src 192.168.8.0/255.255.255.0 27212_1239092028o30u http_access allow mynet http_access deny all 27212_1239092038dzK8 设置运行时的用户和组权限 设置squid进程所有者 cache_effective_user squidadmin 设置squid进程所属组 cache_effective_group squidadmin 27212_1239092045IoWE 设置管理信息 设置squid可见主机名 visible_hostname 192.168.8.188 27212_12390920487fHN swap性能微调 half_closed_clients off 27212_1239092052q0fh cache_swap_low 80 cache_swap_high 100 27212_1239092057oY3y maximum_object_size 1024 KB 27212_1239092064sI73 squid配置逻辑是自上而下,满足条件即不再和下面匹配。 7、检查squid.conf配置文件 当更改过配置文件后最好验证一下配置文件:squid -k parse 27212_1239092074bnkN 8、squid服务初始化 在第一次启动squid服务之前,一定要使用squid -z命令来使squid在硬盘缓存中建立cache目录,或者重新设置了cache_dir字段的值之后也要使用此命令来重新建立硬盘缓存目录哈~ 如果我们要观察此过程,我们可以加个-X参数哈~ squid -zX 27212_1239092083Vi31 注意:在cache目录激活后永远不要改变L1和L2的值哈~ 9、启动squid服务 service squid start 27212_12390920940ClT 10、测试 squid -D检查squid服务有没启动 27212_1239092095u2Ee 客户端只要设置IP地址、子网掩码、网关及DNS就可以直接上网了哈~ 27212_1239092099eKKi 27212_1239092105VpPp 测试http网站 27212_1239092109IKBG 27212_1239092112fC50 测试https网站 27212_1239092115jIov 27212_1239092118CgX3 27212_1239092120zayM 测试邮箱网站 27212_1239092124UBj0 27212_1239092129Ny7J [url]http://ipid.shat.net/[/url],检测你的代理是否成功哈~~~ 27212_1239092133KmKl tail /usr/local/squid/var/logs/access.log 我们会发现访问的记录都在access.log中哈~~~ 27212_1239092135mxDj cat /usr/local/squid/var/logs/cache.log 27212_1239092137eyed 此外我们还可以使用acl和http_access deny组合来禁止指定IP、指定网段、屏蔽访问指定网站及指定固定时间上网等等哈~~~ #################Michael分割线#######################]]>