سلام
چه خطایی میده؟
وصل شدن به دیتابیس برای mysql به صورت زیر هست
var mysql = require('mysql');
var con = mysql.createConnection({
host: "host url",
user: "username",
password: "password"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
- فرشته حقیقی 4 سال قبل پاسخ داد
متد bind در react برای ارسال آرگومان به متد استفاده می شود.فرض کنیم یک متد به نام changeName داریم.برای ارسال نام به این متد به صورت زیرعمل می کنیم.
changeName.bind(this,'sara')
- فرشته حقیقی 4 سال قبل پاسخ داد
props.children در react زمانی به کار می رود که بخواهیم علاوه بر آرگومان اطلاعات اضافی دیگری نیز به کامپوننت ارسال کنیم.فرض کنیم کامپوننت Customer را داریم.می خواهیم علاوه بر نام سن شخص را نیز به این کامپوننت ارسال کنیم
<Customer name="sara"/>
age:20
براdی دریافت اطلاعات اضافی در کامپوننت که در اینجا سن می باشد به صورت زیر عمل می کنیم
function Customer(props){
return(
<div> name is {props.name}
{props.children}
</div>
);
}
- فرشته حقیقی 4 سال قبل پاسخ داد
فرض کنیم یک کامپوننت به نام Customer داریم
برای دریافت دیتا از آرگومان به صورت زیر عمل می کنیم
function Customer(props){
return(
<div> name is {props.name}</div>
);
}
برای ارسال آرگومان به این کامپوننت نیز به صورت زیر عمل می کنیم
<Customer name="sara"/>
- فرشته حقیقی 4 سال قبل پاسخ داد
ایندکس Clustered بر روی کلید اصلی جدول به صورت اتوماتیک ایجاد می شود.ایندکس هایی که خودمان تعریف می کنیم non Clustered می شوند که برای عملیات آیپدیت و درج سریعتر هستند.
- فرشته حقیقی 4 سال قبل پاسخ داد
برای اینکار می توانیم در فایل pom بصورت زیر زمان سشن را تنظیم کنیم.
<session-config>
<session-timeout>50</session-timeout>
</session-config>
این زمان به ثانیه می باشد.در اینجا گفتیم که زمان سشن 50 ثانیه باشد.
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن Transactional@ در Spring برای مشخص کردن یک تراکنش استفاده می شود.یعنی در صورتیکه فرایند به خطا خورد عملیات انجام شده را rolllback می کند.این انوتیشن می تواند در سطح کلاس و یا در سطح متد استفاده شود.
@Transactional
public void createCourse(Course course) {
courseDao.create(course);
throw new DataIntegrityViolationException("Throwing exception for demoing Rollback!!!");
}
می توانیم مشخص کنیم در چه مواردی rollback انجام شود
@Transactional(rollbackFor = { SQLException.class })
public void createCourse(Course course) throws SQLException {
courseDao.create(course);
throw new SQLException("Throwing exception for demoing rollback");
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن Data@ در Spring متدهای getter ,setter ,toString و مقداردهی فیلدها در کانستراکتور را تولید می کند و دیگر نیازی نیست که ما این متدها را پیاده سازی کنیم.در مثال زیر در کلاس user فقط فیلدها را تعریف کرده ایم.
@Data
public class User {
private Long id;
private String username;
}
- فرشته حقیقی 4 سال قبل پاسخ داد
در این روش آرگومان های کانستراکتور به کلاسی از جنس خودشان بایند می شوند.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context/
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<bean id="employee" class="com.howtodoinjava.autowire.constructor.EmployeeBean" autowire="constructor">
<property name="fullName" value="Lokesh Gupta"/>
</bean>
<bean id="department" class="com.howtodoinjava.autowire.constructor.DepartmentBean" >
<property name="name" value="Human Resource" />
</bean>
</beans>
EmployeeBean.java
public class EmployeeBean
{
private String fullName;
public EmployeeBean(DepartmentBean departmentBean)
{
this.departmentBean = departmentBean;
}
private DepartmentBean departmentBean;
public DepartmentBean getDepartmentBean() {
return departmentBean;
}
public void setDepartmentBean(DepartmentBean departmentBean) {
this.departmentBean = departmentBean;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
}
در اینجا آرگومان departmentBean در کانستراکتور به بین department بایند می شود.
- فرشته حقیقی 4 سال قبل پاسخ داد
در این روش property ها براساس نوع آنها(type) بایند می شوند.در این روش در فایل xml ویژگی autowire برابر byType قرار داده می شود. سپس spring در بین ها جستجو می کند و هر بین که نوع آن با property مورد نظر یکسان باشد را به آن property بایند می کند.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context/
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="employee" class="com.howtodoinjava.autowire.byType.EmployeeBean" autowire="byType">
<property name="fullName" value="Lokesh Gupta"/>
</bean>
<bean id="department" class="com.howtodoinjava.autowire.byType.DepartmentBean" >
<property name="name" value="Human Resource" />
</bean>
</beans>
EmployeeBean.java
public class EmployeeBean
{
private DepartmentBean departmentBean;
private String fullName;
public DepartmentBean getDepartmentBean() {
return departmentBean;
}
public void setDepartmentBean(DepartmentBean departmentBean) {
this.departmentBean = departmentBean;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
}
در اینجا departmentBean به بین department بایند می شود.
- فرشته حقیقی 4 سال قبل پاسخ داد
در Autowiring براساس نام، property های کلاس به یک bean متصل می شوند.برای این کار کافی است در هنگام تعریف bean در فایل xml، عبارت autowire را برابر byName دهیم.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context/
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.howtodoinjava" />
<bean id="employee" class="com.howtodoinjava.demo.beans.EmployeeBean" autowire="byName">
<property name="fullName" value="Lokesh Gupta"/>
</bean>
<bean id="departmentBean" class="com.howtodoinjava.demo.beans.DepartmentBean" >
<property name="name" value="Human Resource" />
</bean>
</beans>
EmployeeBean.java
public class EmployeeBean
{
private String fullName;
private DepartmentBean departmentBean;
// getter & setter
}
DepartmentBean.java
public class DepartmentBean {
private String name;
// getter & setter
}
- فرشته حقیقی 4 سال قبل پاسخ داد
DeleteMapping@ در Spring برای رسیدگی به درخواستهای DELETE استفاده می شود.
@DeleteMapping("/employees/{id}")
public Map<String, Boolean> deleteEmployee(@PathVariable(value = "id") Long employeeId)
{
//...
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن PutMapping@ در Spring برای رسیدگی به درخواستهای PUT استفاده می شود
@PutMapping("/employees/{id}")
public ResponseEntity<Employee> updateEmployee(@PathVariable(value = "id") Long employeeId,
@RequestBody Employee employeeDetails) {
//...
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن PostMapping@ در Spring برای رسیدگی به درخواستهای POST استفاده می شود و معادل
(RequestMapping(method = RequestMethod.POST@ می باشد.
@PostMapping("/employees")
public void addMember(@RequestBody Member member) {
//...
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن getMapping@ همان انوتیشن RequestMapping@ است که برای درخواستهای HTTP از نوع GET به کار می رود.
@GetMapping("/home")
public String homeInit(Model model) {
return "home";
}
- فرشته حقیقی 4 سال قبل پاسخ داد
JSR-303 برای اعتبار سنجی داده های ورودی در کلاسهای جاوا می باشد.برای کنترل ورودی ها بااستفاده از این استاندارد از دو انوتیشن Size@ و Pattern@ در مثال زیر استفاده کرده ایم
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
public class EmployeeVO
{
private Integer id;
@Size(min = 3, max = 20)
private String firstName;
@Size(min = 3, max = 20)
private String lastName;
@Pattern(regexp=".+@.+\\.[a-z]+")
private String email;
//Setters and Getters
}
- فرشته حقیقی 4 سال قبل پاسخ داد
- آخرین فعالیت در 4 سال قبل
برای اینکار کافی است در پرانتز جلوی این انوتیشن نوع درخواست را مشخص کنیم.مثلا فرض کنیم می خواهیم یک متد مربوط به درخواستهای post و متد دیگر مربوط به درخواستهای GET باشد.
@Controller
@RequestMapping("/employee-management/employees")
public class EmployeeController
{
@RequestMapping (method = RequestMethod.GET)
public String getAllEmployees(Model model)
{
//application code
}
@RequestMapping (method = RequestMethod.POST)
public String addEmployee(EmployeeVO employee)
{
//application code
}
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن RequestMapping@ در سطح کلاس برای زمانی مناسب است که در همه درخواستها یک بخش از url ها مشترک باشد.
@Controller
@RequestMapping("/employee-management/employees/*")
public class EmployeeController
{
@RequestMapping("/add")
public String addEmployee(EmployeeVO employee)
{
//application code
}
}
- فرشته حقیقی 4 سال قبل پاسخ داد
انوتیشن RequestMapping@ در سطح متد برای نگاشت یک درخواست به متد مربوط به آن درخواست می باشد.در پرانتز جلوی این درخواست نام url مربوط به آن درخواست نوشته می شود.
@Controller
public class EmployeeController
{
@RequestMapping("/employee-management/employees")
public String getAllEmployees(Model model)
{
//application code
}
}
- فرشته حقیقی 4 سال قبل پاسخ داد
در این حالت یکی از pom ها می شود parent و دیگری child. در اینصورت pom مربوط به chilld شامل تمام dependency و property های تعریف شده در pom فایل پدر خواهد بود.
فرض کنیم pom فایل پدر به صورت زیر است
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;
<modelVersion>4.0.0</modelVersion>
<groupId>com.howtodoinjava.demo</groupId>
<artifactId>MavenExamples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>MavenExamples Parent</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>3.8.1</junit.version>
<spring.version>4.3.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
در pom فایل فرزند، pom فایل پدر را در تگ parent معرفی می کنیم
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>com.howtodoinjava.demo</groupId>
<artifactId>MavenExamples</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
</project>
- فرشته حقیقی 4 سال قبل پاسخ داد