Java JDBC对应C# ADO连接数据库之区别
来源:互联网 发布:迪奥旷野香水知乎 编辑:程序博客网 时间:2024/06/14 01:46
JDBC对应C#连接数据库之区别
之前一直在用java,最近因为找了.NET的工作,开始学习.NET。
今天也是查了好多资料,但是一直没有看到和JDBC之间的对比博文,开始也是一头雾水!
但是功夫不负有心人终于大概弄懂了C#怎么去连接数据库了,故简单分析下和JDBC之间的区别,为像我这样的萌新提供一点帮助!
菜鸟一只,讲的比较基础,大神直接跳过吧!
下面正题
准备工作
JDBC在这一步应该是导入对应的jar包,C#引入对应的DLL(这些东西网上搜一下都会有的,另外eclipse使用maven,vs使用nuget也都可以找到对应的资源,很方便!这里不再赘述)
以mysql为例
加载驱动
JDBC首先是加载驱动:
Class.forName("com.mysql.jdbc.Driver"); // 参数为对应database提供的驱动
C#是直接把DLL引入项目中了,这里应该是没有对应的步骤。(真要对应起来的话难道是using MySql.Data.MySqlClient
???)
获取连接
JDBC在这里应该就要开始获取数据库连接了:
Connection connection = DriverManager.getConnection(url, username, password);/***参数说明:*url : 待连接数据库的地址 类似于jdbc:mysql://localhost:3306/test 也可以将用户名密码添加在url之后直接传给getConnection方法*username : 登录数据库需要的用户名*password : username对应的密码*/
ADO在这里同样也是获取数据库连接
MySqlConnection connection = new MySqlConnection(url);/***参数说明:*url:待连接数据库的地址。类似Server=localhost;Database=test;username=root;Password=root;*因为MySqlConnection 只有无参和一个参数的构造方法,所以只能这样把username和password一起传给他。(也可能是我太笨,没找到可以设置username和password的方法!)*/
获取statement和command
JDBC在这一步就是获取对应的Statement和PreparedStatement :
Statement statement = connection.createStatement();或者PreparedStatement pStatement = connection.prepareStatement(sql); //sql是需要执行的sql语句
ADO相同,但是好像没有无参和有参sql的区分:
MySqlCommand command = connection.CreateCommand(); //也许是我没找到区分sql的类,不过有参和无参的sql都正常执行了,这个下面会讨论
设置sql参数
在这里都是设置参数,执行sql语句
带参数的sql语句在JDBC和C#中是不一样的select * from user where id = ? ; //这是jdbcselect * from user where id = @id; //这是C#
JDBC:
pStatement.setString(index, value); //index 是对应?的位置,从1开始 //执行sql int res = statement.executeUpdate(sql); //增删改 返回受影响的行数 或者 ResultSet resultSet = statement.executeQuery(sql); //这个是返回结果集
ADO:
command.CommandText = sql; command.Parameters.AddWithValue(parameterName, value); //parameterName对应sql中@后边的名字,value对应值。没有先后顺序(当然也有别的设置参数的方法,这个是比较直观的,其余的不在赘述,大家自己研究一下就行了)//执行connection.Open();int res = command.ExecuteNonQuery(); //执行增删改对应的语句,返回受影响的行数MySqlDataReader reader = command.ExecuteReader(); //执行查询的sql语句,返回一个DbDataReader对象
遍历结果集
然后就是遍历结果
JDBC :
while(resultSet.next()){ String id = resultSet.getString(1); //根据索引获取结果,从1开始 String name = resultSet.getString("name"); //根据列名获取结果}
ADO :
while (reader.Read()) { object id = reader[0]; //根据索引获取,从0开始 object name = reader["name"]; //根据列名获取或者 /* * string id = reader.getString(0); * string name = reader.getString("name"); */ }
关闭连接
最后都是需要释放相关的资源!!!(很重要)
最后都是需要释放相关的资源!!!(很重要)
最后都是需要释放相关的资源!!!(很重要)
一点学习心得,写的不好,欢迎大家补充!
0 0
- Java JDBC对应C# ADO连接数据库之区别
- ADO之连接数据库
- java之jdbc连接db2数据库
- java学习笔记之jdbc连接数据库
- JDBC之Java连接MySQL数据库
- JDBC之连接数据库
- java jdbc 连接 数据库
- Java jdbc 连接数据库
- java JDBC 连接数据库
- java-------连接数据库(jdbc)
- java连接数据库(jdbc)
- java连接jdbc数据库
- java.jdbc 连接数据库
- Java连接JDBC数据库
- Java JDBC连接数据库
- java JDBC连接数据库
- java JDBC连接数据库
- Java:JDBC连接数据库
- HDU 1963 Investment(完全背包)
- 学习网站整理
- ubuntu16.04+nvidia gt740m+cuda7.5+caffe安装、测试经历
- AndroidStudio 的快捷键
- maven学习系列——(六)maven搭建私服
- Java JDBC对应C# ADO连接数据库之区别
- Gradle DSL method not found: 'apt()'
- 【备忘】【C1】 《轻量级Java EE企业应用实战(第3版)》PDF与源码下载
- 【C语言】在终端输⼊多⾏信息,找出包含“ould”的⾏,并打印该⾏。
- 【noip2011年提高组T2】 选择客栈 思路+灵感+递推
- grails的domain的constraints和mapping
- Fix a Tree
- leetcode_[python/C++]_424_Longest Repeating Character Replacement
- Win10系统企业版如何免费永久激活?