发表于: 2017-08-08 23:42:09

1 904


今天完成的事

学习JDBC

为项目导入mysql-jdbc的jar包

1初始化驱动

package jdbc;

/**

 * Created by yaheng on 2017/8/7.

 */

    public class jdbcdirver{

        public static void main(String[] args) {

            //初始化驱动

            try {

                //驱动类com.mysql.jdbc.Driver

                //就在 mysql-connector-java-5.0.8-bin.jar中

                //如果忘记了第一个步骤的导包,就会抛出ClassNotFoundException

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

                System.out.println("数据库驱动加载成功 !");

            } catch (ClassNotFoundException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

        }

    }

2建立与数据库的连接

import java.sql.DriverManager;

import java.sql.SQLException;

public class TestJdbc {

    public static void main(String[] args) {

        try {

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

            // 建立与数据库的Connection连接

            // 这里需要提供:

            // 数据库所处于的ip:127.0.0.1 (本机)

            // 数据库的端口号: 3306 (mysql专用端口号)

            // 数据库名称 how2java

            // 编码方式 UTF-8

            // 账号 root

            // 密码 admin

            Connection c = DriverManager

                    .getConnection(

                            "jdbc:mysql://127.0.0.1:3306/yaheng?characterEncoding=UTF-8",

                            "root", "0123.");

            System.out.println("连接成功,获取连接对象: " + c);

        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }}

3JDBC增删改查

代码

public class Sqldemo {
public static void main(String[] args) {

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

           Connection c = DriverManager
                   .getConnection(
"jdbc:mysql://127.0.0.1:3306/yaheng?characterEncoding=UTF-8",
"root", "0123.");

           Statement s = c.createStatement();

// 准备sql语句
           // 注意: 字符串要用单引号''
           String sql = "INSERT into hero VALUES "+"("+null+","+"'提莫'"+","+700+","+40+")";
           s.execute(sql);

           System.out.println("执行插入语句成功");

       } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
           e.printStackTrace();
       } catch (SQLException e) {
// TODO Auto-generated catch block
           e.printStackTrace();
       }

   }
}

将红色代码改为SQL语句中的其他语法完成增 删 改操作,“查”与前三者不同,需要另一种方法 注意它拼接的格式



package jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class SelectDemo {

    public static void main(String[] args) {

        try {

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

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

        try {

            Connection c = DriverManager.

                    getConnection("jdbc:mysql://127.0.0.1:3306/yaheng?characterEncoding=UTF-8",

                            "root",

                            "0123.");

            Statement s = c.createStatement();

            String sql = "select id,name,blood,defence from hero";

            // 执行查询语句,并把结果集返回给ResultSet

            ResultSet rs = s.executeQuery(sql);

            while (rs.next()) {

                int id = rs.getInt("id");// 可以使用字段名

                String name = rs.getString(2);// 也可以使用字段的顺序

                float hp = rs.getFloat("blood");

                int defence = rs.getInt(4);

                System.out.printf("%d\t%s\t%f\t%d%n", id, name, hp, defence );

                // 不一定要在这里关闭ReultSet,因为Statement关闭的时候,会自动关闭ResultSet

                // rs.close();

            }

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        catch(Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

使用完成后要关闭数据库链接和statement,否则数据库资源将被占用

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

    public class TernOff {

        public static void main(String[] args) {

            Connection c = null;

            Statement s = null;

            try {

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

                c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/yaheng?characterEncoding=UTF-8", "root",

                        "0123.");

                s = c.createStatement();

            } catch (ClassNotFoundException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            } catch (SQLException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            } finally {

                // 数据库的连接时有限资源,相关操作结束后,养成关闭数据库的好习惯

                // 先关闭Statement

                if (s != null)

                    try {

                        s.close();

                    } catch (SQLException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                    }

                // 后关闭Connection

                if (c != null)

                    try {

                        c.close();

                    } catch (SQLException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                    }

            }

        }

    }

明天的计划

jdbc的增删改查自己敲一边,利用这个过程加深理解记忆,开始JDBCtemplate方面

遇到的问题 

搬用网上实例代码出现各种报错,认真修改类名和修改语句块顺序后解决

收获:今天的进度很少,有些着急,师兄给我讲了急于求成的后果之后才平静下来,以后要学会摆正自己的心态及时调整


        任务进度:任务一步骤17

            开始时间:2017-8-8

           是否有延期风险:有

                                    之前对这个步骤难度过于乐观,会提高效率



返回列表 返回列表
评论

    分享到