把jdbc封装的所有代码打成独立jar包,以后直接引用jar。

点击领取jar包以及配置文件

(1)创建一个新的工程

(2)创建包结构

  1. 打包

工具包

核心的代码:Jdbc.jar

src配置文件 :db.properties

依赖其他的包

log4j  +  src/log4j.properties

dbcp  + src/db.properties

mysql驱动

(4)项目中使用jdbc的封装包

之前的新闻发布系统,单独提供一个工程出来。

系统的jar包

配置文件

(5)完成功能

先创建合理的包结构,然后按照三层的步骤写代码

发布新闻

建表

......

实体类

package com.njwbhz.newssys.entity;import com.njwbhz.jdbc.util.DateUtil;import java.util.Date;public class News {//属性private int id;private String title;private String Content;private Date createtime;//无参构造器public News() {}//有参构造器public News(int id, String title, String content, Date createtime) {this.id = id;this.title = title;Content = content;this.createtime = createtime;}//get和set方法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) {Content = content;}public Date getCreatetime() {return createtime;}public void setCreatetime(Date createtime) {this.createtime = createtime;}@Overridepublic String toString() {return "News{" +"id=" + id +", title='" + title + '\'' +", Content='" + Content + '\'' +", createtime=" + DateUtil.dateToStr(createtime , "yyyy-MM-dd HH:mm:ss") +'}';}
}

Dao

package com.njwbhz.newssys.dao;import com.njwbhz.newssys.entity.News;import java.sql.SQLException;public interface NewsDao {void add(News news) throws SQLException;
}

DaoImpl

package com.njwbhz.newssys.dao.impl;import com.njwbhz.jdbc.template.JdbcTemplate;
import com.njwbhz.newssys.dao.NewsDao;
import com.njwbhz.newssys.entity.News;import java.sql.SQLException;public class NewDaoImpl implements NewsDao {@Overridepublic void add(News news) throws SQLException {String sql = "insert into t_news (t_title,t_content,t_createtime) values (?,?,now())";JdbcTemplate.insert(sql , news.getTitle() , news.getContent());}
}

TestDao

package com.njwbhz.newssys.test;import com.njwbhz.newssys.dao.NewsDao;
import com.njwbhz.newssys.dao.impl.NewsDaoImpl;
import com.njwbhz.newssys.entity.News;import java.sql.SQLException;public class TestNewsDao {public static void main(String[] args) {NewsDao newsDao = new NewsDaoImpl();News news = new News();news.setTitle("123");news.setContent("123");try {newsDao.add(news);} catch (SQLException e) {e.printStackTrace();}}
}

...检查数据

Exception

package com.njwbhz.newssys.exception;import com.njwbhz.newssys.entity.News;public class NewsSysException extends RuntimeException {public NewsSysException (String msg) {super (msg);}
}

Service

package com.njwbhz.newssys.service;import com.njwbhz.newssys.entity.News;
import com.njwbhz.newssys.exception.NewsSysException;public interface NewsService {void publish (News news) throws NewsSysException;
}

ServiceImpl

package com.njwbhz.newssys.service.impl;import com.njwbhz.jdbc.tx.Transaction;
import com.njwbhz.newssys.dao.NewsDao;
import com.njwbhz.newssys.dao.impl.NewsDaoImpl;
import com.njwbhz.newssys.entity.News;
import com.njwbhz.newssys.exception.NewsSysException;
import com.njwbhz.newssys.service.NewsService;import java.sql.SQLException;public class NewsServiceImpl implements NewsService {//service肯定会调用dao,和处理事务private NewsDao newsDao = new NewsDaoImpl();private Transaction tx = new Transaction();@Overridepublic void publish(News news) throws NewsSysException {if (news.getTitle().contains("你妹") || news.getContent().contains("你妹")) {throw new NewsSysException("不能含有脏话");}try {tx.begin();newsDao.add(news);tx.commit();} catch (SQLException e) {try {tx.rollback();} catch (SQLException e1) {e1.printStackTrace();}e.printStackTrace();}}
}

TestService

package com.njwbhz.newssys.test;import com.njwbhz.newssys.entity.News;
import com.njwbhz.newssys.service.NewsService;
import com.njwbhz.newssys.service.impl.NewsServiceImpl;public class TestNewsService {public static void main(String[] args) {NewsService newsService = new NewsServiceImpl();News news = new News();news.setTitle("1234");news.setContent("1234");newsService.publish(news);}
}

Jdbc工具类的打包(包含jar包分享)相关推荐

  1. 阿里的图片剪裁工具类及依赖的jar包

    阿里的图片剪裁工具类包含以下7个方法,这都好理解,关键是这个jar包的maven依赖不好找,有人卖这个依赖已经卖到50个下载币,黑心啊,我找了很久终于找到了. 1.按固定长宽进行缩放 2.按固定文件大 ...

  2. 基于阿里云的短信接口的工具类及三个jar包下载地址

    https://blog.csdn.net/Mr_zzr/article/details/100168118 上面这个写的很好! 三个jar包下载地址在我的github: https://github ...

  3. springboot自定义工具类构建打包踩坑经历

    前言 1.如何打包一个工具类? 2.如何在工具类中引入第三方jar包? 3.如何在调用工具类时能够正确识别工具类中的静态资源? 4.如何在静态方法中注入变量? 如果你有以上问题,请看下去,相信对你有帮 ...

  4. eclipse中简单实现自己的工具类打包成jar包并在项目中使用

    在现实开发中我们经常会自己写工具方便别人使用,所以就要将我们写好的工具打包成jar包,给别人调用 一.首先,编写一个类MyFristJar.java,代码如下: package com.zl.myja ...

  5. idea中将java项目中的单个类打包成jar包

    文章目录 打包jar包 导入jar包使用 JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包.JAR文件与z ...

  6. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 参考文章: (1)springboot打包成jar包后找不到xml,找不到主类的解决方法 (2)https://www.cnbl ...

  7. 【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )

    文章目录 一.扩展方法示例 二.实例扩展方法配置 三.编译实例扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 实例扩展方法 一.扩展方法示例 为 Thread 扩展 he ...

  8. 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )

    文章目录 一.扩展方法示例 二.静态扩展方法配置 三.编译静态扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 静态扩展类 一.扩展方法示例 为 Thread 扩展 hel ...

  9. jar包修改并重新打包,jar包反编译使用工具以及修改代码方法

    jar包修改并重新打包,jar包反编译使用工具以及修改代码方法 备忘: https://blog.csdn.net/tomcat_zhu/article/details/79240011

最新文章

  1. 安装Windows 2012域控(For SQLServer 2014 AlwaysOn)
  2. 使用JavaScript在文本框中的Enter键上触发按钮单击
  3. data.push({name:'a',value:'a'});
  4. MySQL触发器简介
  5. (转载)Memcached预定义常量
  6. 上海世博会物联网技术应用
  7. 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(一)
  8. Citrix XenAPP DS角色
  9. 菜鸟教程python100例-菜鸟教程python
  10. ★自助饮料售卖机,C语言 编辑题
  11. java qq聊天界面_用Java制作一个简单的QQ聊天界面
  12. 秒懂设计模式之原型模式(Prototype Pattern)
  13. 洛谷-3373 【模板】线段树 2
  14. Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL ser
  15. 计算机实训项目结果文档,计算机基础实训报告.doc
  16. windows 8 pro vl_微软MSDN原版Windows10/8/7/XP系统镜像与office下载地址大全
  17. php的declare命令如何使用?
  18. 工程师如何对待开源——一个老工程师的肺腑之言
  19. 点击应用图标-应用(Activity)的启动流程
  20. 进阶39 奇妙的数字

热门文章

  1. FGD · 它是 vue-next 操作文件的“御用”库
  2. vue飘窗效果(css飘窗效果,跟随页面滚动)
  3. xxl-job简单任务和分片任务
  4. 机器学习与数据挖掘150道题
  5. 上海边检部门全力护航浦东机场货运渠道
  6. 全国计算机辅助设计证,NSAC全国标准化考试联盟认证试题计算机辅助设计AutoCAD样本...
  7. 将jar包转换成可执行.exe文件
  8. 【react 跨域代理】
  9. 山东大学现代软件技术期末考试试题
  10. mysql乐观锁和悲观锁详解