
查了一下,可以用命令行生成相应的文件:
Scaffold-DbContext "Server=\SQLExpress;Database=SchoolDB;Trusted_Connection=True;" MicrosoftEntityFrameworkCoreSqlServer -OutputDir Models
连接字符串放json里面
"ConnectionStrings": {
"MbkDbConstr": "Data Source=(localdb)\\MBK;Database=MbkTest;"
}
参考资料:
网页链接
最简单的方法是使用struts或jsf等mvc的框架,本身就是一个实现。如果自己实现,比较复杂的就是要自己写一个总控制器,接受所有用户的请求,进行分发给其他servlet或直接进行页面跳转。不建议自己实现,建议使用一个mvc框架,然后搞明白他的生命周期和原理,再去看框架总控制器的源代码,这样比较好。
原理:
jsp发展经历了两个模型时代,jsp模型一时代是把代码都写在jsp页面上,用户访问jsp页面时,jsp页面来对数据库进行 *** 作并返回值到jsp页面,这样第一不好维护,第二安全性不高,第三代码结构不清晰,第四重用性不高。于是就有了jsp模型二时代,人们将所有的页面请求交给一个servlet控制器来接受,然后进行分发,由该servlet来决定调用其他servlet访问数据库还是进行页面跳转,这个servelt就是MVC中的C,struts中好像叫ActionServlet,Jsf中叫FacesServelt,webxml中配置的就是总servlet控制器,为了更好的分层,重用,降低依赖性,就有了MVC,由M层接受和绑定用户的数据,V层进行展现,C层进行控制。
目前主流的开发模式是四层开发模式:界面层(page)+动作处理层(action)+业务逻辑层(service)+数据访问层(dao),page层用于展现页面,action层用于捕获用户事件并调用service层处理业务逻辑,service要处理业务逻辑肯定就要对数据库进行增删改查,拼接HQL语句,然后调用dao层对数据库进行 *** 作,hibernate完成的就是DAO层。但是这样一来action层对service层产生了依赖,因为要创建一个service接口的引用,service层对dao层产生了依赖,就是说实例化一个action层的对象,同时要至少实例化一个service层和至少实例化一个dao层,于是spring的IOC就可以起作用了,就可以降低各层之间的依赖。将各层做为接口对象实例配置到spring中,降低依赖。
package comkiwworqqbeans;
import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlSQLException;
import javasqlStatement;
/
数据库 *** 作的JavaBean类,用于对数据库的查询与更新的实现;
该类默认的连接的数据库为本地数据库,连接数据库为"qq";
该类主要为用户一系列的数据 *** 作提供底层服务。
@author kiwwor
@see UserBean
/
public class Access {
//驱动程序类
private String driver = "commicrosoftsqlserverjdbcSQLServerDriver";
//连接数据库url
private String connectionUrl="jdbc:sqlserver://localhost:1433;DatabaseName=qq";
//用户名
private String user = "qq";
//用户密码
private String password = "123258741";
//数据库连接对象
private Connection connection = null;
//数据库对象
private Statement statement = null;
//数据集对象
private ResultSet resultSet = null;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
thisdriver = driver;
}
public String getConnectionUrl() {
return connectionUrl;
}
public void setConnectionUrl(String connectionUrl) {
thisconnectionUrl = connectionUrl;
}
public String getUser() {
return user;
}
public void setUser(String user) {
thisuser = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
thispassword = password;
}
public Connection getConnection() {
return connection;
}
public void setConnection(Connection connection) {
thisconnection = connection;
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
thisstatement = statement;
}
public ResultSet getResultSet() {
return resultSet;
}
public void setResultSet(ResultSet resultSet) {
thisresultSet = resultSet;
}
/
获取一个连接对象,默认连接对象本地数据库qq。
@return 连接是否成功
/
public boolean createConnection() {
boolean b = false;
try {
ClassforName(driver);
connection = DriverManagergetConnection(connectionUrl, user, password);
b = true;
} catch (Exception e) {
eprintStackTrace();
}
return b;
}
/
更新数据库
@param sql 更新的sql语句
@return 更新是否成功
/
public boolean update(String sql) {
boolean b =false;
try {
statement = connectioncreateStatement();
statementexecute(sql);
b = true;
} catch (Exception e) {
eprintStackTrace();
}
return b;
}
/
执行查询,将查询的结果集给resultmentSet。
@param sql 查询的sql语句
/
public void query(String sql) {
try {
statement = connectioncreateStatement();
resultSet = statementexecuteQuery(sql);
} catch (Exception e) {
eprintStackTrace();
}
}
/
检测结果集是否为空
@return true为存在记录
/
public boolean next() {
boolean b = false;
try {
if (resultSetnext()) b = true;
} catch (Exception e) {
eprintStackTrace();
}
return b;
}
/
获得结果集中当前行columnLabel的记录
@param columnLabel
@return 值记录
/
public String getValue(String columnLabel) {
String value = null;
try {
if (resultSet != null) value = resultSetgetString(columnLabel);
} catch (Exception e) {
eprintStackTrace();
}
return value;
}
/
关闭连接对象
/
public void closeConnection() {
try {
if (connection != null) connectionclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
/
关闭数据库对象
/
public void closeStatement() {
try {
if (statement != null) statementclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
/
关闭结果集
/
public void closeResultSet() {
try {
if (resultSet != null) resultSetclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
/
关闭数据连接对象,数据库对象和数据结果集对象。
/
public void closeAll() {
closeResultSet();
closeStatement();
closeConnection();
}
/
测试该类函数。
@param args
/
public static void main(String[] args) {
Access db = new Access();
if (dbcreateConnection()) {
Systemoutprintln("测试数据库连接成功");
String sql = "select id from [user]";
dbquery(sql);
int i = 1;
while (dbnext()) {
String s = dbgetValue("id");
Systemoutprintln("查询用户" + i + ": " + s);
i++;
}
dbcloseResultSet();
dbcloseStatement();
dbcloseConnection();
}
}
}
第二个:
package comkiwworqqbeans;
/
这是一个对用户的数据查询和更新的JavaBean类;
该类提供了对用户的密码认证,用户注册等方法。
@author kiwwor
@see Access
/
public class UserBean {
/
对用户的登录认证
@param id 用户名
@param password 密码
@return 认证结果
/
public boolean isValid(String id, String password) {
boolean b = false;
Access db =new Access();
if (dbcreateConnection()) {
String sql = "select from [user] where id=" + id +"and password=" + password;
dbquery(sql);
if (dbnext()) {
b = true;
}
}
dbcloseAll();
return b;
}
/
用来查询该用户在服务器中是否存在
@param id 用户名
@return 确认是否存在
/
public boolean isExit(String id) {
boolean b = false;
Access db =new Access();
if (dbcreateConnection()) {
String sql = "select from [user] where id=" + id;
dbquery(sql);
if (dbnext()) {
b = true;
}
}
dbcloseAll();
return b;
}
/
添加用户,该方法必须在<code>isExit(String id)</code>确认的前提下使用,否则可能出现异常
@param id 新增用户名
@param password 密码
@return 确认添加是否成功
/
public boolean add(String id, String password) {
boolean b = false;
Access db =new Access();
if (dbcreateConnection()) {
String sql = "insert into [user] (id, password) values (" + id + "," + password + ")";
b = dbupdate(sql);
}
dbcloseAll();
return b;
}
}
以上就是关于请问asp.net core mvc怎么使用ef连接现有数据库全部的内容,包括:请问asp.net core mvc怎么使用ef连接现有数据库、如何实现MVC模式、MVC中,Controller如何从数据库调用单个数据给一个变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)