星空网 > 软件开发 > Java

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

其实···,我个人是很不喜欢这样的缩写的,比如:我有一句MMP不知道该不该讲!!!

这里面的MMP你知道是什么意思么!!!

还有WQNMLGB,你知道是什么吗?是的,没错,写全了就是“我去年买了个包”!!!

 

好吧,还是讲点正经的,JDBC是什么呢?大家说得不错,就是“觉得不错”!!!其工作原理如下图:

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

根据上图来看,使用的步骤很清楚了吧。

    第一步:导入JDBC的驱动包。

    第二步:使用DriverManager加载驱动。

    第三步:调用JDBC API访问或操作数据库中的数据。

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 

JDBC要使用的常用类和接口如下图如式:

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 


接下来我们通过几个常用操作来演示使用Java访问MySql中的数据该如何编写代码。

先创建一个博客管理的数据库,在其中添加文章表,表中有以下几个字段:

    文章ID,文章标题,文章内容,发表时间,文章显示状态(0.不显示 1.显示)

之后再添加几条测试数据。

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 

一、添加博文

1.1 创建Blog实体类

1234567891011121314151617181920212223242526272829303132333435363738public class Blog {    private int blogid;   //ID    private String title; //标题    private String content;   //内容    private String pubtime;   //发表时间    private int blogstate;    //状态 0.不可见 1.可见         public int getBlogid() {        return blogid;    }    public void setBlogid(int blogid) {        this.blogid = blogid;    }    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 String getPubtime() {        return pubtime;    }    public void setPubtime(String pubtime) {        this.pubtime = pubtime;    }    public int getBlogstate() {        return blogstate;    }    public void setBlogstate(int blogstate) {        this.blogstate = blogstate;    }}

 

1.2 创建BlogDAO类,编写添加方法

12345678910111213141516171819202122232425262728293031public class BlogDAO {    /**     * 添加博客文章     * @param blog     * @return 是否添加成功 0.失败 1.成功     */    public int addBlog(Blog blog){        int result = 0;        try {            //1. 加载驱动            String driver = "com.mysql.jdbc.Driver";            Class.forName(driver);            //2. 创建连接            String url = "jdbc:mysql://127.0.0.1:3306/blogdb";            Connection conn = DriverManager.getConnection(url,"root","root");            //3. 执行SQL语句,?表示占位符,后期可以使用setxxx()方法给对应的位置填充数据            String sql ="INSERT INTO blogTbl (title, content) VALUES (?, ?)";            PreparedStatement ps = conn.prepareStatement(sql);            //3.1 填充数据            ps.setString(1, blog.getTitle());            ps.setString(2, blog.getContent());            result = ps.executeUpdate();            conn.close();        }catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }                 return result;    }}

 

1.3 创建Test类,测试添加方法

1234567891011121314public static void main(String[] args){    Blog blog = new Blog();    BlogDAO blogDAO = new BlogDAO();         blog.setTitle("添加一个标题");    blog.setContent("添加了一点点内容...");         if(blogDAO.addBlog(blog)>0){        System.out.println("添加成功!");    }    else{        System.out.println("失败了...");    }}

结果:

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 

二、查询所有博文

    因为前面需要创建的文件都已经创建了,所以这儿只需要在BlogDAO类中编写查询所有博文的方法即可。

2.1 编写查询所有博文的方法

123456789101112131415161718192021222324252627282930public List<Blog> findAll(){    List<Blog> list = new ArrayList<Blog>();    try {        //1. 加载驱动        String driver = "com.mysql.jdbc.Driver";        Class.forName(driver);        //2. 创建连接        String url = "jdbc:mysql://127.0.0.1:3306/blogdb";        Connection conn = DriverManager.getConnection(url,"root","root");        //3. 执行SQL语句        String sql ="select blogid, title, content, pubtime, blogstate from blogTbl";        PreparedStatement ps = conn.prepareStatement(sql);        //3.1 读取数据并封装成Blog对象        ResultSet rs = ps.executeQuery();        while (rs.next()) {            Blog blog = new Blog();            blog.setBlogid(rs.getInt("blogid"));    //getInt()也可以通过下标读取数据            blog.setTitle(rs.getString("title"));            blog.setContent(rs.getString("content"));            blog.setPubtime(rs.getString("pubtime"));            blog.setBlogstate(rs.getInt("blogstate"));            list.add(blog);        }        conn.close();    }catch (Exception e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return list;}

注意:因为是读取数据,并且读取的数据不止一条记录,所以一般使用集合保存后返回。

 

2.2编写测试方法

12345678910111213public static void main(String[] args){    BlogDAO blogDAO = new BlogDAO();    List<Blog> list = blogDAO.findAll();         System.out.println("文章ID\t标题\t\t发表时间\t\t状态\t内容");    for (int i = 0; i < list.size(); i++) {        System.out.println(list.get(i).getBlogid()+"\t"+                list.get(i).getTitle() +"\t"+                list.get(i).getPubtime()+"\t"+                (list.get(i).getBlogstate()==0?"不可见":"可见")+"\t"+                list.get(i).getContent());    }}

结果:

《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 

使用JDBC基本就这两个套路,一个是增、删、改的功能,一个是查询的功能。

练完,收功!!!《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

 

“软件思维”博客地址:51CTO博客园,感兴趣的小伙伴可以去看相关的其它博文。 

原标题:《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
中国有哪些著名的酒店品牌。:https://www.vstour.cn/a/411242.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流