为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
JDBC之 “ 对岸的女孩看过来”_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

JDBC之 “ 对岸的女孩看过来”

Preacher JAVA开发工程师
难度初级
时长 2小时 2分
  • 连接数据库
    查看全部
  • jdbc连接过程
    查看全部
  • JDBC的基本概念 (1)连接数据库的桥梁 (2)由java语言编写的类和接口组成 (3)可以为多种数据库提供统一的访问 本课例子采用了MVC三层架构模式 模型层(DB + DAO):封装了实现类 控制层:action层,负责调用模型层 视图层调用控制层 JDBC各种连接方式的对比: 1、JDBC + ODBC桥的方式。特点:需要数据库的ODBC驱动,仅适用于微软的系统 这种方式,JDBC将调用传递给ODBC,然后ODBC再调用本地的数据库驱动代码。 2、JDBC + 厂商API的形式。特点:厂商API一般使用C编写 这种方式,JDBC将调用直接传递给厂商API的服务,然后在调用本地的数据库驱动。 3、JDBC + 厂商Database Connection Server + DataBase的形式。 特点:在JAVA与DATABASE之间架起了一台专门用于数据库连接的服务器(一般有数据库厂商提供) 这种方式,JDBC将调用传递给中间服务器,中间服务器再将调用转换成数据库能够被调用的形式,在调用数据库服务器。中间增设数据库服务器能够提升效率,但不如直接操作数据库便捷。 4、JDBC + DATABASE的连接方式。 特点:这使得Application与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。(没有中间环节,是推荐方式!)
    查看全部
    0 采集 收起 来源:课程总结

    2015-11-14

  • jdbc连接数据库步骤
    查看全部
  • MVC三者之间的互通与更新
    查看全部
  • 控制层是用来接收视图层的参数(用户行为),然后去调用模型层,模型层会把结果通知给控制层,控制层再把结果更新到视图层来展现给用户.控制层是起到桥梁的作用,连接着模型层与视图层.
    查看全部
  • 从JAVA应用程序从数据库获取数据表的信息(包含多条),思路是先创建模型层类(数据库的映射,最好把属性值添加set()和get()方法,开发工具直接添加),再定义一个返回List<对象>的方法,再定义SQL语句(可能带多个参),然后通过executeQuery()执行查询,返回ResultSet的对象(里面都是通过定义好的SQL语句查询到的数据,会有多条记录),再把每一条记录封装为对象(通过while语句配合使用),每条记录就对应一个对象,如果有多条记录则会对应多个对象(通过while、next()与ResultSet的getString("")、getInt("")方法获取单条记录的指定字段对应的记录值,把获取的这个记录值存放在模型层类的对象所对应的属性中,可通过set()方法),同时把封装好的对象加载到List集合中,这样List中就会存在多个对象,最后把List集合返回给方法.在主函数里通过对象调用方法,获取List<对象>集合,再遍历集合中的数据. JAVA应用程序执行SQL(查询)命令后-->数据库的数据-(传递)->JAVA应用程序ResultSet中-(记录)-->通过while,next()循环把记录封装成对象-->添加对象到List集合里-->遍历集合里内容. JAVA应用程序执行SQL(添加数据,删除数据,更新数据)比查询的简便跟多,因为不需要封装成对象,简单的在SQL语句设置参数"?",再用PreparedStatementd的setString(),setInt()传递参数,再调用execute()执行SQL语句. 通常是用PreparedStatement类来进行对数据库的连接操作.
    查看全部
  • JDBC传参数过多的时候 用List<Map<String,Object>>双泛型作为参数:就是把SQL语句的参数放在Map中,多个参数即多个Map放到List中 public List<Goddess> query(List<Map<String, Object>> params) if(params!=null&params.size()>0){ for(int i =0;i<params.size();i++){ Map<String,Object> map = params.get(i);//Object就是什么都能放. //sb为StringBuilder类的对象.sb初始为SELECT * FROM girl WHERE 1=1 使用Map存储条件信息;防止条件为空可加一条where 1=1语句 sb.append("and "+map.get("name")+" "+map.get("relation")+" "+map.get("value")"); } 然后通过预编译,参数为sb.toString(),再进行查询,返回ResultSet,与next(),getString()等一起用,创建模型层对象,把 从ResultSet中获取到的一整条数据,赋值到模型层的对象,每条记录对一个对象,把多个对象依次插入list中,函数最后返回list集合} 主函数中 GoddessDao g = new GoddessDao(); List<Map<String,Object>> params = new ArrayList<Map<String,Object>>; Map<String,Object> param = new HashMap<String,Object>(); param.put("name","user_name"); //把SQL语句的参数放入到Map中,其中KEY值为固定的形式,即SQL筛选条件语句,即name relateion value 对应值是user_name='小美'; param.put("relation","="); param.put("value","'小美'");//值是字符串要加上单引号区分字符串 params.add(param); List<Goddess> result = g.query(parms);
    查看全部
  • 输入"syso",按Alt+/ 快速地打出"System.out.println();" alt+↓ 向下移动整行 ctrl+shift+o 快速导入包 alt+shift+j 快速添加类的文档注释 Alt+Shift+Z 为代码块添加try/catch ctrl+/ 注释被选择的语句
    查看全部
  • MVC三层架构
    查看全部
  • MVC三层架构
    查看全部
  • JAVA应用程序实现连接数据库对其操作(方法2,PreparedStatement,带参) public class connectionDB { static private String id; static private String name; public connectionDB(String id,String name){ this.id=id; this.name=name; } static public Connection conn=null; static{ Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/littlelibrary","root","zht191996"); } static public Connection getline(){ return conn; } //实现插入数据到reader表 public void addreader() throws SQLException{ Connection conn=connectionDB.getline(); PreparedStatement ptmt=conn.prepareStatement("INSERT reader VALUES(?,?)"); ptmt.setString(1,connectionDB.id ); ptmt.setString(2,connectionDB.name ); ptmt.execute(); } public static void main(String[] args) throws ClassNotFoundException, SQLException { connectionDB test =new connectionDB ("1000100000","庄浩棠"); test.addreader(); } } 用PreparedStatement可以实现带参数的SQL语句的操作.
    查看全部
  • JAVA应用程序实现连接数据库对其操作(方法1,Statement方法) public class connectionDB { static public Connection conn=null; static{ //使用static静态语句块,只会执行一次. Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/littlelibrary","root","zht191996"); } static public Connection getline(){ return conn; } //实现插入指定数据到reader表 public void addreader() throws SQLException{ Connection conn=connectionDB.getline(); Statement state=conn.createStatement(); state.execute("INSERT reader VALUES('1000009999','庄浩棠','15603078105','学生',2,'男','1996-1-19','软件系')"); } public static void main(String[] args) throws ClassNotFoundException, SQLException { connectionDB test =new connectionDB (); test.addreader(); } } Statement对象的方法不能进行预编译,所以设置不了参数. PreparedStatement对象可以实现预编译,所以可以传入参数.
    查看全部
  • JAVA应用程序实现与数据库的连接方式 (方法2) 1.Class.forName("com.mysql.jdbc.Driver"); 2.Connection conn=DriverManager.getConnection(); 3.PreparedStatement ptmt=conn.prepareStatement("SQL语句"); 通过Connection的prepareStatement("SQL语句")方法来获取一个PreparedStatement对象. PreparedStatement是可以进行预编译prepareStatement("SQL语句")会把要执行的SQL语句加载到当前执行的驱动程序中(conn),但不执行SQL语句,通过ptmt操作它,等到用到execute()时才会执行. 可以先定义String sql="INSERT reader(Readerid,Readername,tel,sf,num,sex,birth,dept) VALUES(?,?,?,?,?,?,?,?);"把它放在prepareStatement()的参数中,问号(?)代表SQL语句中未知的参数.参数内的语句就是要进行预编译的. 可通过PreparedStatement的setString(columns_index,参数值),setInt(columns_index,参数值),setFloat(columns_index,参数值)来传递参数给进行预编译的SQL语句,columns_index代表SQL语句中的第几个字段,第二个参数为赋值给SQL语句的参数值. 再调用execute()方法执行SQL语句,此处不需要参数,因为预编译conn.prepareStatement("SQL语句")已经把SQL语句加载给正在执行的驱动程序(conn),它已经接收到SQL语句,通过ptmt.execute()来操作它即可. 4.如果是查询的话一样是executeQuery();返回ResultSet的对象,再通过ResultSet的next()方法与while语句配合使用.
    查看全部
  • JAVA应用程序实现与数据库的连接方式 (方法1) 1.Class.forName("com.mysql.jdbc.Driver"); 2.Connection conn=DriverManager.getConnection(); //通过DriverManager的getConnection()获取一个Connection的对象. 3.Statement state=conn.CreateStatement();//通过Connection的CreateStatement()获取一个Statement的对象. 4.state.execute(); //通过Statement的execute()方法实现对数据的增删改,返回布尔值.用executeQuery()实现查询数据的操作,返回ResultSet的对象.再通过其对象的next()与while配合使用.
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java 中级课程,各位小伙伴们需要对 JAVA 基础,MySql 的应用 以及 SQL 语句的编写有基本了解。
老师告诉你能学到什么?
1、JDBC 的基本概念 2、JDBC 常用接口及使用
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!